这篇博客主要是学习Java中的策略设计模式。
策略设计模式:定义了一系列的算法,将每一种算法封装起来并可以相互替换使用策略模式让算法独立于使用它的客户应用而独立变化。
OO(object oriented)设计原则
(1)面向接口编程
(2)封装变化
(3)多用组合,少用继承
public class InterfaceAppDemo {
public static void main(String args[])
{
Per per = new Per("小白");
System.out.println("======自宫前======");
per.setIsqy(new BeforeGong());
per.say();
System.out.println("======自宫后======");
per.setIsqy(new AfterGong());
per.say();
}
}
//抽象出一个接口(把说话的行为)
interface Isqy{
public void say();
}
class BeforeGong implements Isqy{
public void say() {
System.out.println("人家是纯爷们");
}
}
class AfterGong implements Isqy{
public void say() {
System.out.println("人家现在是宫女了");
}
}
class Per
{
private String name;
//代码精髓点
//把可变化的行为抽象出来,定义成接口,并提供不同的实现
//把接口作为类中的一个属性,接口与类的结合
private Isqy isqy;
//以父类作为参数,则传参数时候可以传递实现接口的类
public void setIsqy(Isqy isqy) {
this.isqy = isqy;
}
public Per(String name)
{
this.name=name;
}
//这个方法的实现是变化的
public void say(){
isqy.say();
}
}