模式?框架?软件为什么要分层?

转载 2006年06月04日 00:45:00

现在软件设计里到处都是模式,框架。有次朋友问什么是模式?我也在学习中,就我的学习经验,给出以下小结。(注意:个人观点,仅供参考,欢迎指正。)

1.什么是模式?

模式,即pattern。其实就是解决某一类问题的方法论。你把解决某类问题的方法总结归纳到理论高度,那就是模式。Alexander给出的经典定义是:每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心。通过这种方式,你可以无数次地使用那些已有的解决方案,无需在重复相同的工作。模式有不同的领域,建筑领域有建筑模式,软件设计领域也有设计模式。当一个领域逐渐成熟的时候,自然会出现很多模式。

2.什么是框架?

框架,即framework。其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。简单说就是使用别人搭好的舞台,你来做表演。而且,框架一般是成熟的,不断升级的软件。

3.为什么要用模式?

因为模式是一种指导,在一个良好的指导下,有助于你完成任务,有助于你作出一个优良的设计方案,达到事半功倍的效果。而且会得到解决问题的最佳办法。

4.为什么要用框架?

因为软件系统发展到今天已经很复杂了,特别是服务器端软件,设计到的知识,内容,问题太多。在某些方面使用别人成熟的框架,就相当于让别人帮你完成一些基础工作,你只需要集中精力完成系统的业务逻辑设计。而且框架一般是成熟,稳健的,他可以处理系统很多细节问题,比如,事物处理,安全性,数据流控制等问题。还有框架一般都经过很多人使用,所以结构很好,所以扩展性也很好,而且它是不断升级的,你可以直接享受别人升级代码带来的好处。框架一般处在低层应用平台(如J2EE)和高层业务逻辑之间的中间层。

5.软件为什么要分层?

为了实现"高内聚、低耦合"。把问题划分开来各个解决,易于控制,易于延展,易于分配资源...总之好处很多啦:)。

评论:

如果说架构师是在模型图纸上工作的,那么模型元素必须是实实在在的,正如我们不可能期望抽象派画家来设计高楼大厦,没有实际意义的模型元素,是不可能构筑出软件系统的。迄今为止,绝大部分软件架构师是依赖软件程序员来实现他们的架构意图的,这二者直接的鸿沟是显而易见的。设计模式的出现是为缩短二者之间的鸿沟所做的努力,目的是让架构师和程序员之间有更多的共同语言和规范。尽管设计模式让软件开发效率和质量有一定程度的提升,但是它始终面临一个很明显的局限,那就是人的因素。人虽然在创造性方面有绝对优势,但是在精确性、持久性、效率、质量上是无法比拟机器的。所以我们希望在软件系统构建过程中,人和机器发挥各自的长处,也就是说,让人来扮演架构师的角色,而让机器来扮演程序施工者的角色。事实上,目前已经有了成功的模式了,那就是KCOM 商业工程(http: //www.kcomsoft.com)企业应用平台所采用的基于设计的全自动化软件工厂模式,采用这种模式,架构师在工具平台所提供的模型图设计环境里做软件系统的设计,设计结果由工具平台自身所带的"软件工厂"自动加工成最终企业应用软件系统。这样的开发模式,能使企业应用软件系统的开发在效率、质量上有了质的提升,从根本上区别于传统的设计模式,因为这里的设计模式已经包含在软件工厂编译器之中了。

模式?框架?软件为什么要分层?

现在软件设计里到处都是模式,框架。有次朋友问什么是模式?我也在学习中,就我的学习经验,给出以下小结。(注意:个人观点,仅供参考,欢迎指正。) 1.什么是模式? 模式,即pattern。其实就是解决...
  • eager7
  • eager7
  • 2012年10月30日 09:13
  • 1031

模式?框架?软件为什么要分层?

现在软件设计里到处都是模式,框架。有次朋友问什么是模式?我也在学习中,就我的学习经验,给出以下小结。(注意:个人观点,仅供参考,欢迎指正。) 1.什么是模式? 模式,即pattern。其实就是解决...
  • itianyi
  • itianyi
  • 2013年05月31日 18:53
  • 1238

yarn(hadoop2)框架的一些软件设计模式

一、概述 我们都知道,yarn版本的hadoop无论是从架构上面还是软件设计的层面上面都比原始的hadoop版本有较大的改进。在架构方面,我们认为yarn模式是新一代的框架,这个在官方等丛多的资料中...

软件构架,框架,设计模式.Vs.知识工程

知识学习系统与软件构架有很大的相似性。如何有效的构建一个完整的学习框架是一个教育学者日夜探讨的问题,如果能发现其中的方法,或许能开始最有效率的学习,解决知识传承的困难。 知识的爆发性增长使其数量看似接...

主流MVC框架的设计模式及遵守的软件设计原则

本文以主流的MVC框架为例,比如Java 的SSH、PHP的Symfony和Zend Framework ,在简单地剖析他们的设计原理之后,找到其中使用的设计模式;鉴赏他们的代码实现,查看设计者们都遵...

软件构建模式之MVC框架初窥

这学期有一门软件体系结构的实验课,刚过去的一个星期做了一个关于MVC框架的实验 实验也简单,就是在原有的JAVA程序代码基础上改动一下,在视图中加一些功能。虽简单 但是其中的MVC思想还是很典型的。 ...

一站式解决Electron框架模式的客户端软件开发模式

==引言==:Electron是目前非常流行的一种开发框架,它可以让你使用纯JS调用丰富的原生APIs来创造桌面应用。你可以把它看作是专注于桌面应用而不是web服务器。这不意味着 Electron是绑...

软件架构设计原则和模式(上):分层架构设计

绪论本文打算探讨一下软件架构设计的一些设计原则与经过实践验证的设计模式。 前端(MVC模式)和后端(接口层-业务层-助手层)的分层设计经过了几十年大量软件的证明。分层的思想,就是每一个层次专注做一件事...
  • shendl
  • shendl
  • 2016年05月23日 04:29
  • 5885

我理解的软件 架构模式,MVC和分层

缘起:作为程序员,很容易天天被业务追逐着,抽不开时间修炼。有一天突然停了一下,忽地就会有一种怅然的感觉,过去的那些日子我学到了什么? 有人很认真地说自己有10年经验,有人笑说你不过是一年经验用了10年...
  • vshuang
  • vshuang
  • 2016年12月03日 00:22
  • 1407

【笔记】软件结构模式-分层结构

对“分层结构”的软件架构的要点总结。
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:模式?框架?软件为什么要分层?
举报原因:
原因补充:

(最多只允许输入30个字)