常用设计模式
【模板方法】===============================================
定义算法框架,具体实现延迟子类中,使得子类可以在不改变算法结构的情况下,重新定义某些步骤。
策略模式都封装算法,它使用组合,模板方法使用继承;
工厂方法是特殊的模板方法;
【策略模式】
定义算法簇,封装起来,可以相处替换,让算法的变化可以独立于客户。
区分应用中变化和不变的部分;
针对接口编程,不针对实现编程;
多用组合,少用继承。
【观察者模式】================================================
在对象中定义一对多的依赖,这样当一个对象改变状态,依赖他的对象就会受到通知,自动更新。
JDK中,java.util中的observable类和observer接口以及一些Swing组件(如Jbutton)。
在JDK中实际上有一个对Observer模式的简单的实现:就是类java.util.Observerable和接口java.util.Observer。java.util.Observerable类对应于Subject,而java.util.Observer就是观察者了。JDK中并没有把这两个部分都设计为接口,而是让类java.util.Observerable提供了部分的实现,简化了许多编程的工作。当然,这也减少了一定的灵活性。
因而在Java中应用Observer就很简单了,需要做的是:让需要被观察的Subject对象继承java.util.Observerable,让需要观察的对象实现java.util.Observer接口,然后用java.util.Observerable的addObserver(Observer obj)方法把Observer注册到Subject对象中。这已经完成了大部分的工作了。然后调用java.util.Observerable的notifyObservers(Object arg)等方法,就可以实现Observer模式的机理。
【装饰者模式】======================================================
动态地将责任添加到对象上。扩展功能的首选。
JDK中的java.io就是装饰模式的实例
【单例模式】========================================================
只允许存在一个实例
【抽象工厂】
【工厂方法】=======================================================
抽象工厂提供一个接口,创建相关或依赖的对象家族,不需明确指出具体类;
工厂方法定义创建对象的接口,但由子类决定实例化的类,将实例化推迟到子类。