模板设计模式
模板设计模式的原理:主要是利用到抽象类实现代码的重用效果,接口主要是用于模块之间的通信契约。
假设:某个项目中使用某个servlet都要进行权限判断,日志记录,异常处理,我们可以定义一个抽象的基类达到代码重用的目的。
public abstract class BaseServlet extends HttpServlet{
public void templateMethod(){//模板方法
//权限判断
//日志记录
try{
doService();//抽象方法
}catch(XXXException e){
//异常处理
}
}
public abstract void doService();
}
子类继承父类实现doService()即可。
这里要谈一下接口和抽象类的区别
1.语法上的区别
抽象类和普通类的区别就是抽象类不可以创建实例,有abstract方法,不能包含抽象构造函数,和抽象静态方法,其他都可以。
接口方法为 public abstract 修饰,变量为 public static final 修饰
2.设计上的区别
接口主要是针对动作上的设计为了模块之间的通信契约,抽象类可以实现代码的重用
提个问题:final修饰的变量,是引用不能变,还是引用变量的对象的值不能变?