您的位置:首页 > 其它

《Head First Design Pattern》读后感-----设计模式

2015-09-14 11:02 127 查看
命令模式:情景有餐馆点菜的女服务员,可以看成是利用该模式。具体例子:服务器请求队列,队列不知道每个请求是如何被执行和返回的,只知道将请求从队列中拿出并调用其执行方法execute()。

单例模式:全局共享一个单例对象,可以看该另一篇文章 最好的单例模式

策略模式:宗旨是多组合,少继承。情景:鸭子具有fly和quack的行为,但每种duck的fly和quack方式不一样,如果用实现接口方式,会导致每个duck都会有重复代码(毕竟有些鸭子的fly和quack的方式是一样的)。可以在duck中传入fly和quack的接口,由接口具体实现其行为,这样duck就不用负责fly和quack了。

工厂模式:由工厂决定具体产生哪一个子类。

观察者模式:让被观察者在状态改变时及时通知观察者。在android有许多观察者的例子,例如监听器等等。可以看另外一篇文章 观察者模式

装饰模式:不改变责任,但加入责任。书上的例子,请看下图



适配器模式:转换一个接口



外观模式:简化接口(同时做多件事),封装内部复杂的逻辑,让接口更简单,类似一键开启。但同时也对外提供直接访问内部其他接口的渠道

模板模式:定义一个算法的骨架,是一组步骤,部分步骤可由子类具体实现等。hook(钩子)的概念:允许子类实现算法中可选的部分,也可以置之不理(即使用默认实现方法)。该模式的例子有:例如数组的排序sort方法,内部已有具体排序的算法,被比较的东西只要实现compareTo方法即可。

迭代器模式:如果想要遍历arraylist和array,虽然遍历代码很像,但是还是不一样。可以使用iterator来解决该办法。

状态机模式:它与策略模式的区别------虽然都是委托对象来处理,但是状态机模式是内部自动处理状态转换,而策略模式是要外部自行处理如何动态转换对象,两者还是有差异的。

原则

最少知识原则(迪米特原则):不要与太多人说话,与自己关系最近的人说话。以免系统变得太复杂。

Keep it Simple(KISS原则):保持简单原则,致力选择最简单的办法,不一定要使用模式来解决问题。模式应该是自然而然的出现在你的代码中,而不是硬塞在其中。模式是在代码初始设计中和重构中用到的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: