JAVA_设计模式

设计模式

目录

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模式

Mediator模式

Observer模式

Memento模式

State模式

Flyweight模式

Proxy模式

Command模式

Interpreter模式