设计模式——行为型模式

行为型模式主要关注对象间的通信,它们提供了一种方法来定义对象之间的相互作用,以及怎样分配责任。以下是一些行为型模式的简要说明和Java代码示例:

模板方法模式(Template Method Pattern)
模板方法模式定义了一个算法的骨架,将一些步骤的执行延迟到子类中。

// 抽象类,即模板
abstract class AbstractClass {
public final void templateMethod() {
baseOperation1();
baseOperation2();
concreteOperation();
// 钩子方法,可以被子类重写
hookMethod();
}

protected abstract void concreteOperation();

protected void baseOperation1() {
    System.out.println("基本操作1");
}

protected void baseOperation2() {
    System.out.println("基本操作2");
}

// 钩子方法
protected void hookMethod() {
    System.out.println("钩子方法");
}

}

// 具体实现
class ConcreteClass extends AbstractClass {
@Override
protected void concreteOperation() {
System.out.println(“具体实现”);
}
}

// 客户端代码
class Client {
public static void main(String[] args) {
AbstractClass abstractClass = new ConcreteClass();
abstractClass.templateMethod();
}
}
策略模式(Strategy Pattern)
策略模式定义了一系列算法,并将每一个算法封装起来,使它们可以互换。

// 策略接口
interface Strategy {
void algorithm();
}

// 具体策略
class ConcreteStrategyA implements Strategy {
@Override
public void algorithm() {
System.out.println(“算法A”);
}
}

class ConcreteStrategyB implements Strategy {
@Override
public void algorithm() {
System.out.println(“算法B”);
}
}

// 上下文
class Context {
private Strategy strategy;

public Context(Strategy strategy) {
    this.strategy = strategy;
}

public void setStrategy(Strategy strategy) {
    this.strategy = 

你可能感兴趣的:(设计模式,设计模式)