设计模式
目录
Iterator模式
迭代器模式就是一个集合class内拥有迭代器,该迭代器用于遍历该集合并获取元素
Iterator(迭代器)
ConcreteIterator(具体迭代器)
Aggregate(集合)
ConcreteAggregate(具体集合)
1 2 3 4 5 6 7 8 9 10 11
| public interface Aggregate{ public abstract Iterator iterator(); } public interface Iterator{ public abstract boolean hasNext(); //判断是否存在下一个元素 public abstract Object next(); //获取该元素 } Aggregate创建迭代器Iterator,Iterator中保存当前Aggregate实例,hasNext判断集合Aggregate是否有下个元素,next取出这个元素并将指定指下下一个。
|
Adapter模式
适配器模式就是target不提供具体的实现,而Adapter提供具体实现,通过切换adapter达到切换不同实现、展示的效果。
Target(对象)
Client(请求者) //调用
Adaptee(被适配)
Adapter(适配)
适配器模式主要有以下两种:
类适配器模式(使用继承得适配器)
对象适配器模式(使用委托得适配器)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| 类适配器模式 public interface Target{ public abstract void printA(); } public class Adaptee{ public void showA(){ ... } } public class Adapter extend Adaptee implements Target{ public void printA(){ showA(); } } 调用: Target a = new Adapter(); a.printA(); 对象适配器模式: public abstract class Target{ public abstract void printA(); } public class Adaptee{ public showA(){ ... } } public class Adapter extend Target{ Adaptee adaptee; public Adapter(Adaptee adaptee){ this.adaptee = adaptee; } public void printA(){ adaptee.showA(); } } 调用: Target a = new Adapter(new Adaptee()); a.printA();
|
TemplateMethod模式
FactoryMethod模式
Singleton模式
Prototype模式
Builder模式
Abstract模式
Bridge模式
Strategy模式
Composite模式
Decorator模式
Visitor模式
ChainOfResponsibility模式
Facade模式
Observer模式
Memento模式
State模式
Flyweight模式
Proxy模式
Command模式
Interpreter模式