行为型模式/设计模式
行为型模式
涉及算法和对象间职责的分配,以及它们之间的通信方式,刻画了运行时难以跟踪的复杂控制流,它们将你的注意力从控制流转移到对象联系方式上来。
类行为型模式
使用继承机制在类间分配行为。
模板模式(template method)
一个算法的抽象定义,它逐步定义算法,每一步调用一个抽象操作,子类定义抽象操作的具体实现。
解释器模式(interpreter)将一个文法表示为一个类层次,并实现一个解释器作为这些类的实力上的一个操作。
对象行为型模式
观察者(observer)
职责链(chain of responsibility)
命令(command)
迭代器(iterator)
备忘录(memento)
状态(state)
中介者(mediator)
访问者(visitor)
备忘录模式和状态模式(java)
两个模式都涉及类的状态:
//备忘录
类中提供creatBackup()和restore(Backup bk)的方法,用于类随时创建备份,并在需要的时候进行restore。Backup类存储备份时,类的一些状态信息。
//状态模式
将类的状态和此状态的行为,抽象出来,作为状态的承载类。
public void Context {
String state;
public void method1(){}
public void method2(){}
}
不同的对象,展现不同的行为。(如qq忙碌、离线等等)
在状态的执行类中,就可以,根据传入不同的Context对象的状态,展现不同的行为了。
public void Mgr(){
Context c;
pulic Mgr(Context context){
c=context;
}
public void method(){
if (c.getValue().equals("state1")) {
state.method1();
} else if (c.getValue().equals("state2")) {
state.method2();
}
}
}
I am a slow walker, but I never walk backwards.