Java设计模式

1.面向对象编程概述:

        转至: http://my.oschina.net/liuyuanyuangogo/blog/489297

2.Java设计模式概况

对某个问题经常出现的、在设计中应该尽量避免的、坏的设计方案被称为反模式。

2.1模式列表

基础模式

委托模式

接口模式

代理模式

2.2创建模式

抽象工厂模式(Abstract Factory) 提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。

生成器模式 (Builder)将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

工厂方法模式(Factory Methord) 定义一个用于创建对象的接口,让子类决定将哪一个类实例化。Factory Method使一个类的实例化延迟到其子类。

原型模式 (Prototype) 用原型实例指定创建对象的种类,并且通过拷贝这个原型来创建新的对象。

单例模式(Singleton)保证一个类仅有一个实例,并提供一个访问它的全局访问点。

2.3结构模式

适配器模式 (Adapter) ,将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

桥接模式(Bridge) ,将抽象部分与它的实现部分分离,使它们都可以独立地变化。

组合模式(Composite) ,将对象组合成树形结构以表示部分-整体的层次结构。它使得客户对单个对象和复合对象的使用具有一致性。

容器模式

修饰模式 (Decorator) ,动态地给一个对象添加一些额外的职责。就扩展功能而言, 它比生成子类方式更为灵活。

扩展性模式

外观模式

享元模式

管道与过滤器模式

代理模式(Proxy) ,为其他对象提供一个代理以控制对这个对象的访问。

 2.4行为模式

责任链模式 (Chain of Responsibility) ,为解除请求的发送者和接收者之间耦合,而使多个对象都有机会处理这个请求。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它。

命令模式 (Command) ,将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可取消的操作。

柯里化模式

事件监听器模式

解释器模式

迭代器模式

中介者模式

备忘录模式 (Memento) ,在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到保存的状态。

观察者模式(Observer) ,定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新。

状态模式 (State) ,允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它所属的类。

策略模式 (Strategy) ,定义一系列的算法,把它们一个个封装起来并且使它们可相互替换。本模式使得算法的变化可独立于使用它的客户。

模板方法模式

访问者模式 (Visitor),表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。

层次访问者模式

2.5并发模式

模式 Action at a distance

模式 Balking

模式 Guarded suspension

模式 Scheduler

模式 Read write lock

模式 Double checked locking

模式 Disable job requests while running job

2.6实时模式

模式 Scheduled task

模式 User interface

模式 Disable job requests while running job

2.7其他

模型视图控制器模式

2.8 资料:

       四人帮的《设计模式》

观察者模式:

http://www.cnblogs.com/java-my-life/archive/2012/05/16/2502279.html

http://www.javaprogrammingforums.com/java-programming-tutorials/7321-how-use-observer-pattern.html

状态模式:

http://www.cnblogs.com/java-my-life/archive/2012/06/08/2538146.html

Knowing when thread finished:

http://www.algosome.com/articles/knowing-when-threads-stop.html


3. 生产者/消费者模式:

http://my.oschina.net/liuyuanyuangogo/blog/490267


4.读者/写者模式:

http://my.oschina.net/liuyuanyuangogo/blog/490504


你可能感兴趣的:(Java设计模式)