如果要写一个类描述日常生活中的某些行为我们可以这么写~例如:喝水
System.out.println("开始");
System.out.println("喝水");
System.out.println("结束");
然后喝完水想要睡觉:
又要添加:
System.out.println("开始");
System.out.println("睡觉");
System.out.println("结束");
最后睡不着起床:System.out.println("开始");
System.out.println("起床");
System.out.println("结束");
好了看到这里会想,那么多活动,如果一个两个还好,如果多了呢那怎么办?是不是要写一大堆开始结束,是不是每进行一个动作都要设法调用一次开始,实例化一个对象然后再调用动作,最后再设法调用一次结束。而且在正式的开发中,可能会针对相同的行为写不同的算法或者针对类似的行为写好多方法。既然是相同的或者相似的行为,我们可以抽取一部分相同的代码封装起来作为父类,把不同的部分写在子类。
看代码:
public abstract class Do{
public void do(Object obj){
System.out.println("start");
doing(obj);
System.out.println("over");
}
public abstract void doing(Object obj);
}
public class Kiss extends Do(){
public void doing(Object obj){
System.out.println("我在kiss:"+obj);
}
}
public class Run extends Do (){
public void doing(Object obj){
System.out.println("我在run:"+obj);
}
}
public int main(String[] args){
Kiss k=new Kiss();
k.do();
}
使用此设计模式可以大大增加了程序的可扩展性。纯属个人理解~~