
设计模式
文章平均质量分 68
twtzw
我
展开
-
观察者模式(Observer Pattern)
观察者模式(Observer Pattern):定义了对象之间的一对多依赖,这样一样,当一个对象(主题)改变状态时,它的所有依赖者(观察者)都会收到通知并自动更新注:可以使用推或拉的方法,推(主题自动更新数据),拉(观察者主动更新数据,例如使用getter方法) 实例:气象站要实时通知布告板更新数据,布告板应该能灵活地增加分析:如果在气象站里直接接加布告板则违反了针对接口编程的原则原创 2008-10-17 07:16:00 · 310 阅读 · 0 评论 -
策略模式(Strategy Pattern)
策略模式(Strategy Pattern):定义算法族,分别封装起来,让它们之间可以互相替换,比模式让算法的变化独立于使用算法的客户. 实例:需要实现鸭子的行为(叫和飞),但有些鸭子是不会飞的,而且不同鸭子的叫声不同.分析:如果使用继承的方法,代码会在多个子类重复,运行时的行为不容易改变,改变会牵一发动全身 代码:JAVAinterface Fly原创 2008-10-14 21:53:00 · 272 阅读 · 0 评论 -
装饰者模式(Decorator Pattern)
装饰者模式(Decorator Pattern):动态地将责任附加到对象上.若要扩展功能,装饰者提供了比继承更有弹性的替代方案注:装饰者模式的,常常造成设计中有大量的小类,在实例化组件时增加代码的复杂度 实例:连锁咖啡店订单系统,如果使用继承的方法,每种饮料,以加入的调料不同而声明不同的类,那么”类爆炸”就不幸地发生了 代码:JAVAabstract class原创 2008-10-21 19:42:00 · 276 阅读 · 0 评论 -
工厂方法模式(Factory Pattern)
工厂方法模式(Factory Pattern):定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个.工厂方法让类把例化推迟到子类 实例:PIZZA分店需制作不同类型的PIZZA,但制作过程要保持总店的规则 代码:JAVA import java.util.ArrayList;abstract class Pizza{ String na原创 2008-10-27 10:24:00 · 326 阅读 · 0 评论 -
抽象工厂模式(Abstract Factory Pattern)
抽象工厂模式(Abstract Factory Pattern):提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类. 实例:使用抽象工厂,生产不同区域的PIZZA原料,使得只需使用一个工厂接口,生产各地原料,而且不需在类中实例化 注:其实抽象工厂就是将工厂方法中的Create方法定义成接口,所以抽象工厂和简单工厂有时可以互相实现原创 2008-10-29 19:58:00 · 257 阅读 · 0 评论 -
命令模式(Command Pattern)
命令模式(Command Pattern):将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象,命令模式也支持可撤销的操作。 实例:可编程遥控器,每个按钮可自定义设置各种家电命令,但家电厂商种类繁多,不同家电的命令不同,要使遥控器与命令分离 JAVA代码class Light{ String location; int原创 2008-11-25 21:29:00 · 281 阅读 · 0 评论