查看完整版本: [-- 设计模式的分类和原则 --]

风信Java论坛 ›› Java 基础开发 ›› 设计模式的分类和原则 登录 -> 注册

1F 设计模式的分类和原则   唧唧 Post by : 2009-04-09 14:35:34.0

模式是一种对现实世界的概念抽象,建筑模式,设计模式,营销模式,商业运作模式各行各业都有自己的模式。

这里说的设计模式是软件设计里的模式,主要是指面向对象的软件设计。遵照设计模式,可以有效的提高软件的可维护性和可复用性,提高开发软件的效率,避免过多的出现再造轮子的现象。

设计模式分类:

一、创建模式
1、Factory(工厂模式)
A、Simple Factory(简单工厂模式)
B、Factory Method(工厂方法模式)
C、Abstract Factory(抽象工厂模式)
2、Singleton(单例模式)
3、Multiton(多例模式)
4、Builder(建造模式)
5、Prototype(原型模式)

二、结构模式
1、Adapter(适配器模式)
2、Adapter(适配器模式)
3、Default Adapter(缺省适配器模式)
4、Composite(合成模式)
5、Decorator(装饰模式)
6、Proxy(代理模式)
7、Flyweight(享元模式)
8、Facade(门面模式)
9、Bridge(桥梁模式)

三、行为模式
1、Immutable(不变模式)
2、Strategy(策略模式)
3、Template Method(模板方法模式)
4、Observer(观察者模式)
5、Iterator(迭代子模式)
6、Chain of Responsibility(责任链模式)
7、Command(命令模式)
8、Memento(备忘录模式)
9、State(状态模式)
10、Visitor(访问者模式)
11、Interpreter(解释器模式)
12、Mediator(调停者模式)

设计软件的几个原则,这个也是设计模式的精髓所在:
1.开-闭原则
1).客户的需求是不稳定的,通过扩展已有的软件系统而不是通过修改软件系统来满足客户的需求,这样的软件系统就满足开-闭原则,即软件系统要有一定的灵活性和适应性。
2).已有的模块,特别是抽象层的模块不能修改,保证软件系统的稳定性和延续性。
解决问题的关键是抽象化,把它与具体实现分离开来。接口(interface),抽象类的应用
对可变性封装:将可变性封装到一个对象里。

2.抽象类
抽象类不会有实例,一般作为父类为子类继承,一般包含这个系的共同属性和方法。
注意:好的继承关系中,只有叶节点是具体类,其他节点应该都是抽象类,也就是说具体类
是不被继承的。将尽可能多的共同代码放到抽象类中。

3.里氏代换原则
在有基类出现的地方,子类均可以替代。
当两个具体类关系违反里氏代换原则时,一种办法是抽象出一个基类,作为这两个类的父类,
一种是应用组合聚合关系建立关系。
不要为了使用某些类的方法(功能)而滥用继承。

4 依赖倒转原则
抽象不应该依赖与细节,细节应当依赖与抽象。
要针对接口编程,而不是针对实现编程。
传递参数,或者在组合聚合关系中,尽量引用层次高的类。
主要是在构造对象时可以动态的创建各种具体对象,当然如果一些具体类比较稳定,就不必在弄一个抽象类做它的父类,这样有画舌添足的感觉

5 接口隔离原则
定制服务的例子,每一个接口应该是一种角色,不多不少,不干不该干的事,该干的事都要干

6 合成/聚合原则
尽量使用合成聚合原则,少用慎用继承。
合成:一荣俱荣,一损俱损,整体和部分的生命周期是一样的
聚合:部分可以是整体的一部分,也可以脱离整体而存在。
区分Has a和Is a的问题

7 迪米特法则
最少知识原则。不要和陌生人说话。


风信Java论坛 ›› Java 基础开发 ›› 设计模式的分类和原则 登录 -> 注册

查看完整版本: [-- 设计模式的分类和原则 --]
CopyRight © 2008-2009 JavaWind.Net Studio All Rights Reserved
Powered By JWind.BBS Vesion 1.0.0 Beta1 Processed in 7 ms,0 (Queries)  Gzip enabled
粤ICP备07511478号