
head first 设计模式
文章平均质量分 78
aotian16
这个作者很懒,什么都没留下…
展开
-
观察者模式(observer pattern)(订报)
<br /> <br />定义:定义了对象之间的一对多依赖,这样以来,当一个对象改变状态时,他的所有依赖者都会受到通知并自动更新。<br /> <br />笔记:关键是一对多,就像订阅报纸一样,订阅了的就可以收到报纸,没有订阅的就收不到咯。<br /> <br /> <br />观察者接口<br />package com.tj.observer.observers; public interface Observer { void update(float temp,float humidity,原创 2010-07-01 14:30:00 · 664 阅读 · 0 评论 -
策略模式(strategy pattern)(鸭子)
<br /> <br />定义:定义了算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。<br />笔记:通俗的说,就是将变化多的动作行为独立出来,作为接口,借此减少将来修改程序时候的工作量!<br /> <br />飞行行为接口<br />/** * */ package com.tj.strategy.fly; /** * @author 2172980000502 * */ public interface FlyBehavior {原创 2010-07-01 12:24:00 · 670 阅读 · 0 评论 -
装饰者模式(decorate pattern)(咖啡)
<br /> <br />定义:动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。<br /> <br />笔记:层层叠加,易于扩展。<br /> <br /> <br />抽象基类,饮料<br />package com.tj.decorator; public abstract class Beverage { protected String description = "Unknown Beverage"; public String getDescriptio原创 2010-07-01 16:13:00 · 3039 阅读 · 0 评论 -
简单工厂模式(simpleFactory pattern)(披萨)
定义:将创建对象的任务委托给工厂类笔记:降低耦合。披萨抽象类package com.tj.simpleFactory.pizza; import java.util.ArrayList; abstract public class Pizza { String name; String dough; String sauce; ArrayList toppings = new ArrayList(); public String getName() { return name;原创 2010-07-02 12:55:00 · 1795 阅读 · 0 评论 -
单例模式
<br /> <br />定义:确保一个类只能有一个实例,并提供一个全局访问点<br />笔记:一个实例。<br /> <br /> <br />懒汉式单例模式<br />“双重检查加锁”<br />package com.tj.singleton.threadsafe.dcl; //double-checked locking //Danger! This implementation of Singleton not //guaranteed to work prior to Java 5 p原创 2010-07-05 13:00:00 · 615 阅读 · 0 评论 -
模版模式(template method pattern)(泡茶和咖啡)
<br /> <br />定义:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模版方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。<br /> <br />笔记:封装算法。<br /> <br /> <br />咖啡因饮料(抽象类)<br />package com.tj.templatemethod.barista.caffeinebeverage; public abstract class CaffeineBeverage { /** * prepa原创 2010-07-07 10:19:00 · 851 阅读 · 0 评论 -
适配器模式(adapter pattern)(插座转换)
<br /> <br />定义:将一个类的借口,转换成客户期望的另一个借口。适配器让原本借口不兼容的泪可以合作无间。<br />笔记:转换器。<br /> <br /> <br />鸭子接口<br />package com.tj.adapter.duck; public interface Duck { /** * duck quack interface method */ public void quack(); /** * duck fly interfa原创 2010-07-06 13:07:00 · 938 阅读 · 0 评论 -
外观模式(facade pattern)(看电影)
<br /> <br />定义:提供了一个统一的借口,用来访问子系统中的一群借口。围观定义了一个高层借口,让子系统更容易使用。<br />笔记:让系统使用更加简单。<br /> <br /> <br />家电1<br />package com.tj.facade.hometheater.object; public class Amplifier { String description; Tuner tuner; DvdPlayer dvd; CdPlayer cd; pub原创 2010-07-06 14:38:00 · 603 阅读 · 0 评论