关于设计模式的概念

在网上找的一些关于设计模式的概念

 

1.很多人说设计模式只有23种,那是最早由"四人帮"提出的,在<<设计模式-可复用面向对象软件设计基础>>一书中(1994年),其实设计模式远远不止这23种,诸如Java EE设计模式,MVC设计模式等,不过那23种是基础,很多设计模式是基于这23种混合,升级得来.
         使用环境的问题,这难免有点教条主义,比如说你写个"Hello world"也要设计模式?总的来说你的软件维护困难,升级时要改动一大片时就必须考虑设计模式的介入,同时设计模式与语言是无关的,可以说任何一种面向对象的程序语言都可用到设计模式(C++/Java/C#)
          设计模式也不是只看看书就能掌握的,他比代码实现更高一个层次,顾名思义,在"设计"上(鸟巢设计师和鸟巢施工工人你想当哪一个?当然革命分工不同,这里没有贬低施工工人的意思)
          设计模式的学习之路,面向对象的基础(什么是面向对象?继承,多态,封装有什么好处?)->同时有一定的代码量练习->看书我推荐Head First设计模式
,当觉得有点掌握了,再看"四人帮"的那本

2.框架和设计模式 ?

什么是架构?-   -  
                                                                          
由于在软件业迈向组件装配工业(software   component   industry)   的过程中,不断发现组件设计者对其组件之应用场合的预想环境与应用软件师的软体结构常无法完美地整合起来,导致应用软件师难以灵活地再使用(reuse)   他人设计之组件,造成软件组件工业成长上的瓶颈。OO软件专家也逐渐认识到其问题是来自于软件主架构的不相合(mismatch)。  
   
软件主架构的重要性并非今天才呈现出来,20多年前软件大师Fred.   P.   Brooks   就提到:软件设计的参与者之间,其设计的概念必须一致(conceptual   integrety)才能共同创造出简单亲切的软件,同时他也强调软件主架构在达到概念一致的过程中,居于核心角色。这个20多年来的老问题,仍是今天OO软件师必须努力去克服的。  
   
要想追上它,必须知道它是什么。因此我先介绍一下相关知识的一些概念:  
   
1.   架构(Architecture)  
   
体系结构亦可称为架构,所谓软件架构,根据Perry   和Wolfe之定义:Software   Architecture   =   {Elements,Forms,   Rationale   /   Constraint   },也就是软件主架构   =   {组件元素,元素互助合作之模式,基础要求与限制}。Philippe   Kruchten采用上面的定义,并说明主架构之设计就是:将各组件元素以某些理想的合作模式组织起来,以达成系统的基本功能和限制。体系结构又分为多种样式,如Pipes   and   Filters等。  
   
   
2.   框架(Framework)  
   
框架亦可称为应用架构,框架的一般定义就是:在特定领域基于体系结构的可重用的设计。也可以认为框架是体系结构在特定领域下的应用。框架比较出名的例子就是MVC。  
   
3.   设计模式(Design   Pattern)  
   
设计模式大家应该很熟悉,尤其四人帮所写的书更是家喻户晓。"四人帮"将模式描述为"在一定的环境中解决某一问题的方案"。这三个事物   —   问题、解决方案和环境   —   是模式的基本要素。给模式一个名称,考虑使用模式将产生的结果和提供一个或多个示例,对于说明模式也都是有用的。

 

架构:这个其实包含了很多东西,设计模式和框架也能算上架构之内的东东,硬件架构、网络架构等等,这个概念比较大,笼统的说应该是一种结构体。

框架:
框架通常定义了应用体系的整体结构类和对象的关系等等设计参数,以便于具体应用实现者能集中精力于应用本身的特定细节。框架主要记录软件应用中共同的设计决策,框架强调设计复用,因此框架设计中必然要使用设计模式.

简单来说,框架就是利用现成的技术实现的各种设计模式或一个成熟的框架体系,比如,MVC模式楼主应该知道吧,那么在J2EE领域内,比较经典的Struts框架后webwork框架等等,你所做的就是下载框架后,填写所需代码即可实现一个完整的WEB应用程序(可以想像成一个人的骨架)
比较经典的框架有:Java的Spring框架,数据持久框架:Hibernate,反向控制框架
还有VC++的MFC框架,这些都是现成的骨架,你所做的就是填写所需代码,完成一个应用程序项目。
设计模式:这个楼主好像已经了解的差不多了,呵呵,补充一下:
根本原因是为了代码复用,增加可维护性。那么怎么才能实现代码复用呢?OO界有前辈的几个原则:"开-闭"原则(Open Closed Principal)、里氏代换原则、合成复用原则。设计模式就是实现了这些原则,从而达到了代码复用、增加可维护性的目的。

///

架构,框架,设计模式三者的关系是什么样的呢?

简单的讲三者的关系如下:
1. 设计模式(有过大量的设计实践,被公认为好的一些设计实践被总结成了设计模式)是做架构的最佳实践,好的架构来源于合理的使用了合适的设计模式。
2. 架构是一种类似于思想的东西,架构师提供给使用者的产品是架构(编程规范,通用功能模块,开发接口和相应的说明文档),使用者基于这个架构去开发自己的应用。

 

3.什么是设计模式

设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 
毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。

4.请问“开发模式”,“架构模式”和“设计模式”的定义和区别

开发模式 也就是瀑布,螺旋等四种开发模式
架构模式 这个就说不太清楚,从俗语言说一下吧:层、模型-视图-控制、表示-抽象-控制 等
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值