设计模式---结

一,创建模式

1,工厂方法模式

 .在功能实现中,当要创建一个不知道具体的实现类的时候,可以以接口的形式实现,并把实现类的创建交给工厂方法

2,抽象工厂方法模式

 .不同的工厂提供不同的功能,产品类中可以根据需要到对应的工厂中获取对应的组件功能. 从整体来看每个工厂犹如具体产品类的一个抽像方法.

3,创建者模式

 .可在此类下根据功能需要创建复杂对象,并返回结果给调用者

4,单例模式

 .见博客

5,原型模式

 .当类只想要一个类的部分属性时,通过克隆比实例化要更方便简洁

二,结构模式

 1,适配器模式

   .实现接口的形式进行适配,如一个Listener接口定义了多个事件(click/move...),这时在添加事件时要用到MouseAdapter类

   .对象组合的形式进行适配,如一个业务功能中需要加入另外一个业务,如公众号中的对外部户号进行转换

 2,桥接模式

   .DriverManager(实现) 与Driver(抽象) --->将抽象部分与它的实现部分分离,使它们都可以独立地变化。

 3,组合模式

   .表示“部分-整体”的层次结构,联想到的是公众号菜单树,每个菜单点都可通过迭代器处理整合所有子结点功能

 4,装饰器模式

   .当要对一个类添加额外附加功能时,如集合类...

 5,门面模式

   .为外部系统接入当前子系统提供的一组接口,如mysql接入java.sql

 6,代理模式

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

 7,享元模式

   .主要功能就是以创建一个Flyweight pool来达到内存共享的状态,如一组实现相同接口的对象放在池里,根据参数属性选择是创建还是从池里得到

三,行为模式

 1,观察者模式

   oberverable一点触发,通知到所有被添加进的observer

 2,监听事件模式

   event/listener  每个监听器监听自己的一个事件

 3,命令模式

   .见博客 commend/receiver 主要是让commend拥有状态,可达到do undo 等功能

 4,模板模式

   .在一个类中定义 如start-process-end 让一个类以定义好的模板方式进行执行

 5,责任链模式

   .使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止

 6,策略模式

   .根据不同的参数,选择出一个对应的策略类来执行

 7,迭代器模式

   .看list源码

 8,解释器模式

   .见博客

 9,访问者模式

   .vistor接口中定义要访问的一些功能.vistable--->accept(vistor) ,具体的vistable实现vistor中的一个具体功能.

   当要实现一系列功能时,而这些功能本身又没有怎么联系,这时候可以通过这模式联系起来,vistor(封装所有功能) vistable负责处理具体一个功能

 10,中介者模式

   .如迪米法特原则

 11,备忘录模式

   .在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。

 12,状态模式

    .每一个状态类,都记录着1,当前状态要做的事.2,以及切换到对应的下一状态.

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值