ooad第五天

行为型设计模式

行为型模式:行为模式关注的是对象的行为。该类型的模式需要做的是对可能变化的行为进行抽象,通过封装达到整个架构的可扩展性。

模版模式:模板方法模式是通过把不变行为搬移到超类,去除子类中的重复代码来体现他的优势的,提供一个很好的代码复用平台(变化的抽象、不变得封装)。

观察者模式:分为主题与观察者,主题要继承Observable类,观察者要实现Observer接口;

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
48
49
50
51
52
import java.util.Observable;
public class GPObserver extends Observable{

private double money;

public void jobMoney(double money){
if(money>5){
this.money+=this.money*money/100;
//设置保存点
setChanged();
//通知观察者
notifyObservers();
}
}
public double getMoney() {
return money;
}
public void setMoney(double money) {
this.money = money;
}

}
import java.util.Observable;
import java.util.Observer;

public class User implements Observer{
private String name;
@Override
public void update(Observable o, Object arg) {
GPObserver job = (GPObserver) o;
double money = job.getMoney();
System.out.println(name +" 该股现价为:,"+money);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class Client {

public static void main(String[] args) {
// TODO Auto-generated method stub
GPObserver job = new GPObserver();
job.setMoney(100000);

User u1 = new User();
u1.setName("小张");
job.addObserver(u1);
job.jobMoney(5.1);
}

命令模式:它的根本目的在于将“行为请求者”与“行为实现者”解耦。
策略模式:分离算法,选择实现。它的本质还是“分离算法,选择实现”,因为分离并封装了算法,才能够很容易的修改和添加算法;也能很容易的动态切换使用不同的算法,也就是动态选择一个算法来实现需要的功能了。(需要)