设计模式

一.分类

1.创建性:对象实例化的模式,解耦对象的实例化过程

2.结构性模式:把类或对相结合在一起形成一个更大的结构

3.行为性模式:类和对象如何交互及划分责任和算法


二 . 实现

1.单例模式

 优点:该类只存在一个实例,节省系统资源;对于需要频繁创建销毁的对象,使用单例模式可以提高系统性能。

缺点:不能外部实例化(new),调用人员不清楚调用哪个方法获取实例时会感到迷惑,尤其当看不到源代码时






2.工厂模式

提供一个产品类的接口。产品类均要实现这个接口(也可以是abstract类,即抽象产品)。

提供一个工厂类的接口。工厂类均要实现这个接口(即抽象工厂)。

由工厂实现类创建产品类的实例。工厂实现类应有一个方法,用来实例化产品类。


3.抽象工厂模式

为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。

4.建造者模式

适用于创建复杂对象,将复杂对象分解成若干部分,各部分用一定的算法构成,建造者把复杂对象的表示与创建分离,并且不暴露产品内部结构


5.代理模式 

为其他对象提供一种代理以控制对这个对象的访问

静态代理:静态定义代理类,我们自己静态定义的代理类。比如我们自己定义一个明星的经纪人类

动态代理:通过程序动态生成代理类,该代理类不需要我们自己定义,是程序自动生成

6.装饰模式

在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责。

动态的给一个对象添加功能,以及动态的撤销该功能


装饰模式:侧重给一个实现类动态添加功能,不会对实现类的方法进行过滤拦截

代理模式:侧重将一个实现类的功能,委托给代理类来处理,可以对实现类的方法进行过滤拦截(某种情况下,可能不执行实现类的方法)

7.观察者模式

当一个对象变化时,其它依赖该对象的对象都会收到通知,并且随着变化!对象之间是一种一对多的关系

Java中观察者模式需要被观察者继承java.util.Observable类,需要观察者实现java.util.Observer接口。其中Observer接口中有一个update方法,它在被观察者的某些位置发生改变时会被自动调用。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 创建型模式 工厂模式 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设...
    隔墙送来秋千影阅读 7,572评论 0 11
  • 创建型模式 工厂模式 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设...
    liuyang7519阅读 2,635评论 0 2
  • 创建型模式 抽象工厂模式(abstract facroty) 3.1模式动机 在工厂方法模式中具体工厂负责生产具体...
    僚机KK阅读 4,068评论 0 2
  • 文章部分内容转载自:http://blog.csdn.net/zhangerqing 一、设计模式的分类 总体来说...
    j_cong阅读 6,238评论 0 20
  • 感谢长投!哈哈哈,学的越来越投入,昨天晚上还付费听了口袋课堂的课,结果刚才就看到晨读文章《要为自己的未来花点...
    vivian_841a阅读 962评论 0 0