软件构造博客-5-设计模式

(一)工厂模式

        工厂模式基于委托实现,简单来说,就是令一个工厂类实现工厂接口,该工厂接口中包括一些Creator,用于创建客户需要的类,这样做既方便复用(因为只修改具体的类实现即可,不需修改工厂方法和Creator),同时可以对客户隐藏具体的实现类。

(二)适配器模式

        适配器模式用于将某个类/接口转换为client期望的其他形式,同样基于委托实现。通常用于对一个方法的封装,适配之后对客户隐藏了被封装的类。

(三)装饰器模式

        装饰器模式主要应用于需要特性的任意组合的场景。简单来说,就是有一个接口(其中含ADT需要实现的方法),令基础类实现这个接口,令装饰基础类增加一个该接口类型的属性,其中的方法实现均委托给基础类来完成。各个装饰类继承装饰基础类,并实现该接口,重写各个方法时基础功能使用父类构建好的委托关系实现,同时增加新特性。客户只需要一层层的new各个装饰类即可实现。需要指出的是,如果对不同装饰类的新特性执行顺序有要求,在new的时候要注意顺序。

(四)策略模式

        策略模式适用于有多种不同的算法来实现同一个任务,但需要client根据需要动态切换算法的场景。策略模式基于委托实现。简单来说,就是令不同的策略类实现策略接口,客户传入其想要的策略类,将需要实现的方法委托给策略类实现。

(五)模板模式

        模板模式适用于完成一件事情的流程固定,每项流程的实现方法灵活的场景。模板模式基于继承实现。简单来说,就是模板抽象类中用final方法写好完成一件事情的流程固定,模板类去以不同的算法重写模板抽象类中的每项流程,达到复用的目的。

(六)迭代器模式

        注意for-each循环基于迭代器实现,是一种隐式迭代。基于继承实现

(七)访问者模式

        访问者模式基于双向委托实现(accept方法的参数是Visitor接口类型,visit方法的参数是调用accept方法的类型)。主要适用与一种数据类型和一种特定实现方法绑定的场景。

各种复用模式的共通之处:

或者

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值