作者:徐建祥(netpirate@gmail.com)
时间:2006/09/22
来自:http://www.anymobile.org
1、何谓模式
“每个模式就是一条由三部分组成的规则,它表示了一个特定环境、一个问题和一个解决方案之间的关系。”--《建筑的永恒之道》(Christopher Alexander)
模式,就是对特定场景中,不断重复发生的问题,以及该问题的解决方案的整体抽象描述。
2、设计原则
²开闭原则(OCP,Open-Closed Principle)
是面向对象可复用的基石。模块、方法和类应该对扩展是开放的,而对更改是封闭的;对可变性进行封装。
²里氏代换原则(LSP,Liskov Substitution Principle)
是继承复用的基石。在任何父类出现的地方都可以用它的子类来替代。在实际设计类的阶层体系结构时,这是一条很重要的原则。
²依赖反转原则(DIP,Dependence Inversion Principle)
针对接口编程,要依赖于抽象,不要依赖于具体的实现,也叫控制反转,IoC。
²接口隔离原则(ISP,Interface Segregation Principle)
使用多个专门的接口总是比使用单一的总接口要好。
²合成/聚合复用原则(CARP,Composite or Aggregate Reuse Principle)
聚合:表示拥有或整体与部分的关系。
合成:更强的聚合关系。
尽量使用和成/聚合而不是继承来实现复用,“Has-A”替代“Is-A”(继承)。
²迪米特法则(LoD,Law of Demeter)
一个对象应当对其他对象尽可能少的了解。降低各个单元的耦合,提高系统的可维护性。
3、GOF设计模式
“设计模式是对被用来在特定场景下解决一般设计问题的类和相互通信的对象的描述。”--《Design Patterns》( Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides )
设计模式充分利用语言优势,站在更高的角度去审视我们的设计,但是不要为了模式而设计。
按照模式的目的和范围准则,GOF将众多的设计模式分为3类,共23个设计模式。
3.1创建型(Creational)
抽象工厂(Abstract Factory)O
生成器(Builder)O
工厂方法(Factory Method)O
原型(Prototype)O
单件(Singleton)O
3.2结构型(Structural)
适配器(Adapter)C O
桥接(Bridge)O
组合(Composite)O
装饰(Decorator)O
外观(Façade)O
享元(Flyweight)O
代理(Proxy)O
3.3行为型(Behavioral)
责任链(Chain Responsibility)O
命令(Command)O
解释器(Interpreter)C
迭代(Iterator)O
中介者(Mediator)O
备忘录(Memento)O
观察者(Observer)O
状态(State)O
策略(Strategy)O
模板方法(Template Method)C
访问者(Visitor)O
4、如何使用设计模式
1)学习模式,考虑设计模式是怎样解决问题以及相互的关联性;
2)寻找合适的对象,决定对象的粒度,制定对象接口,描述对象之间的关系;
3)使用设计模式进行优化,权衡性能和灵活性;
4)只有当模式提供的灵活性真正需要时,才有必要使用;
5)设计不能迁就模式,模式为设计服务。
参考:
《Design Patterns》Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
《Java与模式》阎宏
分享到:
相关推荐
设计模式与设计原则.pdf
设计模式与设计原则-new_ppt [兼容模式]
JAVA模式与设计概念总结,绝对详细;JAVA模式与设计概念总结,绝对详细;
敏捷软件开发:原则、模式与设计.pdf 敏捷软件开发:原则、模式与设计.pdf 敏捷软件开发:原则、模式与设计.pdf
详细描述全部(23种)设计模式与设计原则(6种)。 (一)设计原则包括: 1、开闭原则 2、里氏代换原则 3、依赖转换原则 4、接口隔离原则 5、合成/聚合复用原则 6、最少知识原则 (二)设计模式 1)工厂模式...
详细剖析在软件体系结构中设计模式的体现和设计原则应用,归纳设计原则,重描设计模式,,CLASSIC
敏捷软件开发_原则、模式与设计.pdf
2028171_24种设计模式介绍与6大设计原则.pdf
面向对象设计原则:面向对象设计原则、开闭原则、里氏替换原则、里氏替换原则、里氏替换原则
架构必备,经典老书,设计原则,设计模式。 分析使用场景、设计模式的利与弊。详细的举例说明,简单明了。
第Ⅰ部分 模式与设计原则 第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设计模
使用5种设计模式完成的一个点单系统,显示不同系列下的所有商品,点击选择冰度甜度之后添加到订单中,计算总金额,下单之后发送订单到门店的后厨制作商品。使用了抽象工厂模式、装饰模式、单例模式、代理模式、原型...
Java 经典设计模式讲解以及项目实战 设计模式简介:主要介绍各种设计模式的概念和运用场景等 设计模式综合运用:主要是笔者在实际工作中运用到的一些设计模式综合运用事例的提炼 Spring设计模式简介:主要是讲述...
章节介绍:1、爪哇语言结构性模式之变压器模式介绍 2、爪哇语言抽象工厂创立性模式介绍 3、工厂方法创立性模式介绍 4、单态创立性模式介绍 5、单态创立性模式介绍 6、观察者模式介绍7、责任链模式 8、设计模式之...
DAO设计模式DAO设计模式DAO设计模式DAO设计模式DAO设计模式DAO设计模式DAO设计模式DAO设计模式DAO设计模式DAO设计模式