设计模式初识积累

策略模式和适配器模式:

  • 策略模式
    Context类维持一个对Strategy类(该类是其他“具体策略类”的父类)的引用,并可以根据客户端的选择,更改Strategy类的实例。
    Context类中的ContextInterface()方法,调用Strategy类的AlgorithmInterface()方法,即可实现调用“具体策略类”的算法方法。

形象理解:把具体的策略S指定给A,然后调用A的算法执行操作。比如A维持个对一个算法的引用,这个“算法族”执行时需要按照步骤1.2.3执行。但客户端只需要调用A的执行方法,使客户端和具体的算法分离。

  • 适配器模式
    如果想使A类具有和B类一样的方法调用接口,但根据开放-封闭规则不去修改A类,那么可以创建和B类有相同方法调用接口的C类,在C类中维持一个对A类实例的引用,同时在这些方法中具体实现对A类方法的调用。

形象理解:在A外面包裹一层C,C和B具有相同的方法调用接口。这样外部使用A时,只需要使用C,用法和B一样。

区别:虽然说策略模式中Context对Strategy进行了包装,和适配器包装了A类,但是两者侧重不同。策略模式是孤立的Context对有相互联系的“算法族”进行包装。适配器模式侧重使用“隶属于组织中”的Adapter对孤立的A类进行包装,使A类好像“加入了组织”。


建造者模式和(简单)工厂模式:

  • 建造者模式是为生产一个十分复杂的产品而设计的。Builder类规定了产品“需要生产哪些零件”,以至于ProductBuilder不会忘记生产这些零件。具体的ProductBuilder生产“具体的零件”。Director类负责“把这些零件组装起来”,以至于不会忘记组装这些零件。

区别:如果Director看作Client,那么Director类中的调用就可以看作是一个(简单)工厂模式的调用。但是建造者模式生产的对象比工厂模式生产的要复杂。


抽象工厂模式

补充


代理模式

补充


观察者模式

其中Java工具类提供了被观察者抽象基类:java.util.Observable。观察者接口:java.util.Observer。
使用:


桥接模式和装饰模式

补充


命令模式

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值