设计模式

Creational Patterns:
将构造过程抽象成一个创建者的class,这个class负责对象实例化,即将对象的创建和实例化代理给这个class,从而使得系统不依赖于对象如何被创建、构造和表示;利用继承关系区分实例化的类
好处:1)封装系统使用的具体classes的知识
    2)隐藏实例如何被创建和被组装到一起的过程
    3)帮助从硬编码固定行为集合(fixed set of behaviors)向定一个基本行为的较小集合转变。通过较小集合的行为可以
    构造出复杂的行为。
 。singleton
   目的(Intent):封装一个类,这个类有且只有一个实例,并且向外提供一个全局访问点,以访问这个唯一实例
   协作(Collaborations):客户通过singleton‘s实例操作,获得唯一的singlton instance
  。Prototype
   目的(Intent):通过原型实例创建各种对象实例
   协作(Collaborations):客户让“原型”克隆自身
 。Factory method
   目的(Intent):定义创建对象的接口,但让子类决定具体实例化哪个对象。将实例化操作延迟到子类。由子类定义factory
   method,以便返回具体的对象实例。
   协作(Collaborations):具体的creator创建具体的product,因此creator和product都具有各自的类层次结构。
   Iterator是经典的factory method的例子
  Abstract Factory
   目的(Intent):提供创建一族相关联、相依赖对象的接口,利用该接口无需指定/知道具体的对象为谁
   协作(Collaborations):运行时,创建一个单例的具体工厂ConcreteFactory,该工厂创建特定实现的具体产品;
              创建不同的产品对象,client应该使用不同的具体工厂;
              抽象工厂将具体产品对象的创建延迟到器子类的具体工厂之中
  。Prototype
   目的(Intent):通过原型实例创建各种对象实例,【适用于创建类实例时非常复杂和费时的情形。】
   协作(Collaborations):客户调用adapter方法,adapter调用adaptee操作,由adaptee处理请求

Structure Patterns:
关心如何让class,object去组合一个更大更复杂的结构,structural class pattern使用继承构造接口和实现。structural object pattern
描述使对象实现新功能的方法。新加入灵活的功能来自于运行时改变结构的能力,静态结构组合是不具备这种能力的。
  。Adapter
   目的(Intent):将一个类接口转化成为用户期望的接口,解决由于接口不兼容造成多个类无法一同work的问题
   协作(Collaborations):客户让“原型”克隆自身
 。Bridge
 桥梁模式的用意
【GOF95】在提出桥梁模式的时候指出,桥梁模式的用意是"将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化"。这句话有三个关键词,也就是抽象化、实现化和脱耦。
  。Decorator
  装饰或包装模式,在用户不知晓的情况下,即能够透明的动态扩展对象功能,继承关系的一种替代。可以在不适用更多子类的情况下,动态增加功能。
  每一个具体装饰类都将下一个具体装饰类或者具体构件类包装起来。
  。Proxy
  使用简单对象代替复杂对象,适用于大图片延迟加载,高峰时网络对象的访问,权限审计等多种情况。利用proxy可在真正需要时加载actural 对象
 
Behavioral Patterns
  关注算法和类和对象的责任分配
  。Chain of Responsibility
     动态确定处理请求集合(存在一堆handler,不确定使用那些;发送请求到多个对象,无法显示确定具体对象;动态选择集合中对象处理请求)


抽象化

存在于多个实体中的共同的概念性联系,就是抽象化commondity。作为一个过程,抽象化就是忽略一些信息,从而把不同的实体当做同样的实体对待【LISKOV94】。

实现化

抽象化给出的具体实现,就是实现化。

脱耦

所谓耦合,就是两个实体的行为的某种强关联。而将它们的强关联去掉,就是耦合的解脱,或称脱耦。在这里,脱耦是指将抽象化和实现化之间的耦合解脱开,或者说是将它们之间的强关联改换成弱关联。

将两个角色之间的继承关系改为聚合关系,就是将它们之间的强关联改换成为弱关联。因此,桥梁模式中的所谓脱耦,就是指在一个软件系统的抽象化和实现化之间使用组合/聚合关系而不是继承关系,从而使两者可以相对独立地变化。这就是桥梁模式的用意。

  。Strategy
  “一件事”存在多种实现方式,用户根据条件(Context)选择一种方式。比如文件多种保存格式,不同的压缩算法,各样的分行策略,数据的不同表示(线图,柱状图、饼图)。
该模式的思想是将各种策略封装到一个module,提供简单接口以供选择策略。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值