策略模式
- 策略模式是用于解决面向对象中的抽象类与接口的局限性.即一般的对类别进行抽象,对行为进行抽象为接口.这种方式在代码复用上有一定的局限性.而策略模式可以提高代码的复用.
eg:
//定义一个接口,用于在抽象类都能调用到.(里氏替换原则)
interface Speak{void doSpeak() ;
}
// 实现接口1,其他类只要功能一样都可以采用它.
class SpeakCn implements Speak{
@Override
public void doSpeak() {System.out.println("中文");
}
}
//实现接口2,其他类只要功能一样都可以采用它.
class SpeakEn implements Speak{
@Override
public void doSpeak() {System.out.println("English");
}
}
//抽象类 使用接口来实现.将具体实现放到子类来实现接口.
abstract class man{
Speak speak ;
void speak(){speak.doSpeak();
}
}
class CnMan extends man{
//初始化赋值父类接口的实现,也可以采用Spring的初始化加载实现.
public CnMan() {speak = new SpeakCn() ;
}
}
//使用
class test{
public void main(String[] args) {new CnMan().speak();
}
}End