
设计模式
hailang1130
这个作者很懒,什么都没留下…
展开
-
工厂设计模式
工厂设计模式与普通的继承跟本区别在于工厂设计模式中的功能方法会用到没有实现的抽象方法所返回的结果,在工厂方法模式里面,客户端要么使用Creator对象,要么使用Creator创建的对象,一般客户端不直接使用工厂方法 工厂方法模式和IoC/DI的思想是相似的,都是“主动变被动”,进行了“主从换位”,从而获得了更灵活的程序结构。只是在被动获取资源的方式上不同,IoC/DI是通过set的方式注入,而工...原创 2011-08-18 16:00:47 · 93 阅读 · 0 评论 -
策略模式
策略模式,把算法的实现和处理逻辑进行分离,选定特定的算法实现,将其填到context中去,然后由context来调用这个算法进行处理(处理流程对每个算法都是等同的)这样客户端只要持有一个context实例,然后为它设定相应的策略算法就可以了,如此可以方便添加不同的算法实现(典型应用:商城打折) 在具体应用中,很可能会出现,不同的策略算法所需要的数据个数及类型不相同,有两种常用的扩展方法, 1:...原创 2011-08-19 13:44:03 · 89 阅读 · 0 评论 -
装饰模式
装饰模式是在已有的功能上添加新的功能,装饰器和原有的组件调用的都是同一个方法。对于添加的功能可按流程分拆成不同的功能面,用不同的装饰器来实现这些功能面,然后这些装饰器可以按不同的顺序相互组合,也可以只取其中部分装饰器进行组合(java输入输出流)。对于这些装饰器之间其实是一个递归调用的过程。这样的扩展对原有组件是透明的,符合开闭原则。 策略模式也可以实现动态的改变对象的功能,但是策略模式只是一层...原创 2011-08-31 15:31:30 · 109 阅读 · 0 评论 -
观察者模式
观察者模式:定义了对象之间的一对多依赖关系,当一个对象的状态改变时,它的所有依赖者(观察者对象)都会收到通知并自动更新。观察者模式实现了主题对象与观察者对象之间的松耦合,当有新的观察者时,无需修改主题对象的代码,只需要新的观察者对象实现接口,并向主题对象提交注册。在程序运行的过程中,可以随时注册和删除观察者而不影响主题对象。 实则上在主题对象状态发生变化时,相当于调用回调方法的形式来调用...原创 2011-09-13 20:51:11 · 95 阅读 · 0 评论 -
模式与原则复习
在继承与组合的选择上,当用继承时,应保证基类或接口尽量的稳定,要不然接口一变化则所有的子类都被迫需要进行一定的改变。而用组合则可以避免这一问题,将变化封装起来变成脱离类继承体系的外部行为,某个子类需要拥有该行为时只要让其拥有该行为的一个实例,而对别的子类没有影响,同时需要面向接口编程,这样当需要的该行为发生变化时,只要变换注入的行为实体类就可以达到目的(策略模式)。(head first 设计模式...原创 2013-01-21 00:18:16 · 109 阅读 · 0 评论