设计模式初识积累
2016-09-23 09:53
239 查看
策略模式和适配器模式:
策略模式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。使用:
桥接模式和装饰模式
补充命令模式
相关文章推荐
- SQL语句增加列、修改列、删除列
- CMake入门教程
- STS修改SVN路径
- 前端发给后台的参数中含有中文
- 开启java之路
- AndroidStudio无法用HttpClient
- Fragment中onActivityResult不响应
- Source Insight编程配置步骤
- 初等解析几何
- 简单的面向过程分页
- android 取相册 图片 getContentResolver().query 返回空。
- DES加解密
- MySQL交叉表处理_20160923
- html Demo
- Java网络编程UDP的使用
- Django中url模板使用总结
- 跑步的正确姿势
- ajax异常
- 使用OpenGL显示双目视觉三维重构效果
- 双系统win7+ ubuntu 时,无法识别win7的解决办法