设计模式学习之-前言

来源:互联网 发布:vr制作软件图片 编辑:程序博客网 时间:2024/05/22 00:51

1 设计模式类库 框架 架构的联系与区别

  设计模式:为了解决某些待定、不断重复的问题而实现的可复用的类库方案; 4要素(1 模式名称:描述模式的问题、解决方案和效果;2  问题:描述应该在何时使用模式,它解释了设计问题和问题存在的前因后果,也可能描述特定的设计问题,如怎么用对象表示算法; 3解决方案:描述了设讲的组成成分、它们间的相互关系及各自的职责和协作关系。模式就像模板,可应用于多种不同场合,所以解决方案并不描述一种特定而具体的设计或实现,而是提供设计问题的抽象描述和怎么用一个具有一般意义的元素组合(类或对象)来解决这个问题; 4 效果:描述了模式应用的效果及使用模式就权衡的问题,主要包括对系统的灵活性、扩充性和可移植性等方面考核,对评定设计选择和理解使用模式的代价及好处有重要意义)

  类    库:一系列有关联的类

  框    架: 整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;也可以说框架是可被应用开发者定制的应用骨架,是一种基于体系结构的可重用的设计,(如MVC就是一种开源柜架);对软件系统的系统组织,是对构成系统的构件的接口,行为模式,协作关系等体系问题的决策总和。它不仅涉及到结构与行为,而且还涉及到系统的使用,功能,性能,适应性,重用性,可理解性。

    框架从其功能结构化分可分为白箱框架和黑箱框架,白箱框架的设计需要设计者了解要设计的框架的具体功能和内部结构,通过类的继承和设计模式的组合来生成框架。白盒框架是一个程序骨架,而衍生出的子类是这个骨架上的附属品。黑箱框架则是利用对象组合或代理机制实现,它的构建比白箱框架更难。

    框架从复用的粒度划分,可分为:

      1     系统架构框架:这些框架能够使基础系统的开发遍的简单、移植性好、高效,如操作系统的基础架构、通信框架、用户界面框架和语言处理工具,他们用于构建系统的内部组织,而不直接面向最终客户;

      2     中间件集成框架:他们通常用于在分布式系统中集成应用和组件,用于提高软件的模块化、复用性和扩展性,无缝集成分布式应用环境中的应用。例如, ORB 框架、消息中间件和事务中间件;

      3     企业应用框架:这种框架可应用于各行各业,直接面向具体的应用。

      框架强调的是软件的设计重用性和系统的可扩充性。在软激发过程中应用框架技术以缩短大型应用软件系统的开发周期,提高开发质量。与传统的基于类库的面向对象技术比较,框架更注重于面向专业领域的软件重用,具有领域相关性,可以对现有构件根据框架进行复合,生成可运行的系统。框架的粒度越大,其中包含的领域知识就更加完整。


     设计模式与框架的比较

     框架它是一个需要领域和设计经验的反复过程。设计模式可以简化这个过程,因为它提供了对过去经验的抽象。框架能高度抽象同一领域内的问题,进而降低开发难度和强度。在软件开发过程中把框架和模式配合起来使用,可以极大地提高软件的重用。框架和模式都是提高软复用的技术手段,他们之间互相联系但又有所侧重:

    设计模式比框架更抽象:应用框架能够用代码表示,而设计模式只有其实例才能表示为代码。框架能够使用程序设计语言写出来,不仅能被学习,也能被直接执行和复用。而设计模式的每一次复用时,都需要被实现。设计模式需要解释它的意图、权衡和设计效果。

    设计模式是比框架更小的体系结构元素:一个典型的框架包括了多个设计模式。

    框架比设计模式更加特征化:框架总是针对一个特定的应用领域,而设计模式至少要包括两个不同的应用领域。


    如果说类库通常是代码重用,而设计模式是设计重用,那么框架则介于两者之间,部分代码重用,部分设计重用,有时分析也可重用。

    在软件生产中有三种级别的重用:内部重用——对同一应用中能公共使用功能抽象复用;代码重用——将通用模块组合成库或工具集,以便在多个应用和领域都能使用;应用框架的重用——为专用领域提供通用的或现成的基础结构,以便于集成或组装其他功能块达到更高级别的重用性。

简单地说,框架是软件,而设计模式是软件的知识(即开发软件的先验经验)。

 

2 设计模式分类

类创建型         工厂方法模式:Factory Method

对象创建型     抽象工厂模式:AbstractFactory   生成器模式:Builder       原型模式:Prototype   单例模式:Singleton

类结构型        适配器模式:Adapter

对象结构型     适配器模式:Adapter  桥接模式:Bridge   组成模式:Composite    装饰模式:Decorator  外观模式:Facade  享元模式:Flyweight   代理模式:Proxy

类行为型          解释器模式:Interpreter              模板方法模式:Template Method

对象行为型      责任链模式:Chain of Responsibillity    命令模式:Command   迭代器模式:Iterator     中介者模式:Mediator

                          备忘录模式:Memento    观察者模式:Observer                            状态模式:State         策略模式:Strategy  访问者模式:Vistior

注:

    1 创建性模式(Creational Patterns)是类在实例化时使用的模式。当一些系统在创立对象时,需要动态地决定 怎样创立对象,创立哪些对象,创立性模式告诉我们怎样构造和包装这些动态的决定

    2 结构性模式描述类和对象怎样结合在一起成为较大的结构,结构性模式描述两种不同的东西:类与类的实例。

    3 行为模式设计到算法和对象职责间的分配。行为模式不仅是关于类和对象的,而且还描述它们之间的作用,这些模式刻画了运行时刻难以跟踪的复杂的控制流,它帮助软件设计者在设计软件的时候把注意力从控制流转移到对象间的联系上。



0 0
原创粉丝点击