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

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

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

1.什么是模式?

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

2.什么是框架?

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

3.为什么要用模式?

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

4.为什么要用框架?

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

5.软件为什么要分层?

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

评论:

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

初识三层架构……为什么要分层?

随着对三层分层设计的学习(网上搜集资料、小demo的实现),对分层逐步有个一定的了解,起码别人问起来不会像以前那样,啥也不知道要好的多啦,继续积累ing,下面是自己学习的一些学习笔记  基本概念 ...
  • lishehe
  • lishehe
  • 2013-01-13 11:00:28
  • 6811

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

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

系统为什么需要分层

本文出处:http://www.jdon.com/jivejdon/thread/36525 在日常的软件开发当中,我们一般都是采用了分层的方式来架构系统,但是为什么我们需要分层进行架构呢?在此之前...
  • cyq1984
  • cyq1984
  • 2011-11-01 16:32:51
  • 1755

软件架构模式之分层架构

对程序员来说很常见一种情况是在没有合理的程序架构时就开始编程,没有一个清晰的和定义好的架构的时候,大多数开发者和架构师通常会使用标准式的传统分层架构模式(也被称为多层架构)——通过将源码模块分割为几个...
  • bboyfeiyu
  • bboyfeiyu
  • 2015-04-19 23:53:59
  • 14399

软件架构之分层模式(Layered Architecture)

分层模式是最通用的架构,也被叫做N层架构模式(n-tier architecture pattern).这也是Java EE应用经常采用的标准模式.基本上都知道它.这种架构模式非常适合传统的IT通信和...
  • ce123
  • ce123
  • 2016-09-18 00:53:36
  • 7280

为什么计算机网络要采用分层结构

为什么计算机网络要采用分层结构? 1)各层之间相互独立:高层是不需要知道底层的功能是采取硬件技术来实现的,它只需要知道通过与底层的接口就可以获得所需要的服务;   2)灵活性好:各层...
  • kerin_lu
  • kerin_lu
  • 2013-09-18 15:00:54
  • 3389

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

   原文: http://bbs.csai.cn/BBS/view.asp?id={D195724F-F567-423B-AAFB-28E2AE5AA02C} 现在软件设计里到处都是模式,框架。有次...
  • WCFMan
  • WCFMan
  • 2007-01-31 11:09:00
  • 414

架构-分层模式案例

架构模式是什么 软件架构模式,诞生于软件开发的最大难题——需求变更。由于需求变更,导致了大量项目因为超出预算的人力、时间而归于失败。软件开发成本有限的,但需求变更似乎是无限的,这成为了一个非...
  • heiyueya
  • heiyueya
  • 2017-03-06 09:42:30
  • 532

解析三层架构(1)---为什么要分层?

随着分层设计的进行,对分层逐渐有了更深的了解.准备利用几篇文章,深度的分析一下分层设计. 我这里的题目之所以叫三层架构,不一定代表着系统就是三层.古语中三为多.这里的三层也可能是 四...
  • lsh6688
  • lsh6688
  • 2011-05-10 08:52:00
  • 26394

简述为什么要对计算机网络进行分层,以及分层的一般原则。

简述为什么要对计算机网络进行分层,以及分层的一般原则。
  • u011329762
  • u011329762
  • 2014-10-29 12:42:22
  • 2371
收藏助手
不良信息举报
您举报文章:模式?框架?软件为什么要分层?
举报原因:
原因补充:

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