`
coolerbaosi
  • 浏览: 729342 次
文章分类
社区版块
存档分类
最新评论

模式与设计

 
阅读更多

作者:徐建祥(netpirate@gmail.com

时间:2006/09/22

来自:http://www.anymobile.org

1、何谓模式

“每个模式就是一条由三部分组成的规则,它表示了一个特定环境、一个问题和一个解决方案之间的关系。”--《建筑的永恒之道(Christopher Alexander)

模式,就是对特定场景中,不断重复发生的问题,以及该问题的解决方案的整体抽象描述。

2、设计原则

²开闭原则(OCPOpen-Closed Principle)

是面向对象可复用的基石。模块、方法和类应该对扩展是开放的,而对更改是封闭的;对可变性进行封装。

²里氏代换原则(LSPLiskov Substitution Principle)

是继承复用的基石。在任何父类出现的地方都可以用它的子类来替代。在实际设计类的阶层体系结构时,这是一条很重要的原则。

²依赖反转原则(DIPDependence Inversion Principle)

针对接口编程,要依赖于抽象,不要依赖于具体的实现,也叫控制反转,IoC

²接口隔离原则(ISPInterface Segregation Principle)

使用多个专门的接口总是比使用单一的总接口要好。

²合成/聚合复用原则(CARPComposite or Aggregate Reuse Principle)

聚合:表示拥有或整体与部分的关系。

合成:更强的聚合关系。

尽量使用和成/聚合而不是继承来实现复用,Has-A”替代“Is-A”(继承)。

²迪米特法则(LoDLaw of Demeter)

一个对象应当对其他对象尽可能少的了解。降低各个单元的耦合,提高系统的可维护性。

3、GOF设计模式

“设计模式是对被用来在特定场景下解决一般设计问题的类和相互通信的对象的描述。”--《Design Patterns( Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides )

设计模式充分利用语言优势,站在更高的角度去审视我们的设计,但是不要为了模式而设计。

按照模式的目的和范围准则,GOF将众多的设计模式分为3类,共23个设计模式。

3.1创建型(Creational

抽象工厂(Abstract FactoryO

生成器(BuilderO

工厂方法(Factory MethodO

原型(PrototypeO

单件(SingletonO

3.2结构型(Structural

适配器(AdapterC O

桥接(BridgeO

组合(CompositeO

装饰(DecoratorO

外观(FaçadeO

享元(FlyweightO

代理(ProxyO

3.3行为型(Behavioral

责任链(Chain ResponsibilityO

命令(CommandO

解释器(InterpreterC

迭代(IteratorO

中介者(MediatorO

备忘录(MementoO

观察者(ObserverO

状态(StateO

策略(StrategyO

模板方法(Template MethodC

访问者(VisitorO

4、如何使用设计模式

1)学习模式,考虑设计模式是怎样解决问题以及相互的关联性;

2)寻找合适的对象,决定对象的粒度,制定对象接口,描述对象之间的关系;

3)使用设计模式进行优化,权衡性能和灵活性;

4)只有当模式提供的灵活性真正需要时,才有必要使用;

5)设计不能迁就模式,模式为设计服务。

参考:

Design PatternsErich Gamma, Richard Helm, Ralph Johnson, John Vlissides

Java与模式》阎宏

分享到:
评论

相关推荐

    设计模式与设计原则.pdf

    设计模式与设计原则.pdf

    设计模式与设计原则-new_ppt [兼容模式]

    设计模式与设计原则-new_ppt [兼容模式]

    JAVA模式与设计概念总结

    JAVA模式与设计概念总结,绝对详细;JAVA模式与设计概念总结,绝对详细;

    敏捷软件开发:原则、模式与设计.pdf

    敏捷软件开发:原则、模式与设计.pdf 敏捷软件开发:原则、模式与设计.pdf 敏捷软件开发:原则、模式与设计.pdf

    设计模式(23种)与设计原则(6种)

    详细描述全部(23种)设计模式与设计原则(6种)。 (一)设计原则包括: 1、开闭原则 2、里氏代换原则 3、依赖转换原则 4、接口隔离原则 5、合成/聚合复用原则 6、最少知识原则 (二)设计模式 1)工厂模式...

    剖析设计模式与设计原则

    详细剖析在软件体系结构中设计模式的体现和设计原则应用,归纳设计原则,重描设计模式,,CLASSIC

    敏捷软件开发_原则、模式与设计.pdf

    敏捷软件开发_原则、模式与设计.pdf

    设计模式与设计原则

    2028171_24种设计模式介绍与6大设计原则.pdf

    设计原则与设计模式

    面向对象设计原则:面向对象设计原则、开闭原则、里氏替换原则、里氏替换原则、里氏替换原则

    深入探讨设计模式与设计原则

    架构必备,经典老书,设计原则,设计模式。 分析使用场景、设计模式的利与弊。详细的举例说明,简单明了。

    ASP.NET设计模式-杨明军译(源码)

    第Ⅰ部分 模式与设计原则 第1章 成功应用程序的模式 1.1 设计模式释义 1.1.1 起源 1.1.2 必要性 1.1.3 有效性 1.1.4 局限性 1.2 设计原则 1.2.1 常见设计原则 1.2.2 S.O.L.I.D.设计原则 1.3 Fowler的企业...

    设计模式与游戏完美开发

    设计模式与游戏完美开发 设计模式与游戏完美开发 设计模式与游戏完美开发 设计模式与游戏完美开发 设计模式与游戏完美开发 设计模式与游戏完美开发 设计模式与游戏完美开发 设计模式与游戏完美开发 设计模式与游戏...

    设计模式课程设计

    设计模式设计模式设计模式设计模式设计模式设计模式设计模式设计模式设计模式

    设计模式精解 设计模式精解

    设计模式设计模式设计模式设计模式设计模式设计模式设计模式设计模式设计模式设计模式设计模式设计模式设计模式设计模式设计模式设计模式设计模式设计模式设计模式设计模式 设计模式精解设计模式精解设计模式精解...

    DAO设计模式 DAO 设计模式 JAVA设计模式

    DAO设计模式 DAO 设计模式 JAVA设计模

    java设计模式课程设计

    使用5种设计模式完成的一个点单系统,显示不同系列下的所有商品,点击选择冰度甜度之后添加到订单中,计算总金额,下单之后发送订单到门店的后厨制作商品。使用了抽象工厂模式、装饰模式、单例模式、代理模式、原型...

    Java 经典设计模式讲解以及项目实战

    Java 经典设计模式讲解以及项目实战 设计模式简介:主要介绍各种设计模式的概念和运用场景等 设计模式综合运用:主要是笔者在实际工作中运用到的一些设计模式综合运用事例的提炼 Spring设计模式简介:主要是讲述...

    Java设计模式 设计模式介绍

    章节介绍:1、爪哇语言结构性模式之变压器模式介绍 2、爪哇语言抽象工厂创立性模式介绍 3、工厂方法创立性模式介绍 4、单态创立性模式介绍 5、单态创立性模式介绍 6、观察者模式介绍7、责任链模式 8、设计模式之...

    DAO设计模式DAO设计模式

    DAO设计模式DAO设计模式DAO设计模式DAO设计模式DAO设计模式DAO设计模式DAO设计模式DAO设计模式DAO设计模式DAO设计模式

Global site tag (gtag.js) - Google Analytics