做网站的流程与步骤,软件外包项目网站,界面设计1+x证书考什么,wordpress插件自动更新面试和看源码。 谈到设计模式#xff1a;
1、解决了什么问题#xff1f;
2、怎么写#xff1f; 模板方法设计模式解决了什么问题#xff1f;
解决方法中存在重复代码的问题。 写法#xff1a;
1#xff09;定义一个抽象类#xff1a;
2#xff09;在里面定义两个方…
面试和看源码。 谈到设计模式
1、解决了什么问题
2、怎么写 模板方法设计模式解决了什么问题
解决方法中存在重复代码的问题。 写法
1定义一个抽象类
2在里面定义两个方法
1 一个是模板方法把相同的代码放进去
2 一个是抽象方法具体实现交给子类完成 People类
package cn.ensource.d6_abstact_template;public abstract class People {// 设计模板方法设计模式// 1. 定义一个模板方法出来public void write() {System.out.println(我的爸爸);System.out.println(我的爸爸好牛啊~);
// System.out.println(我的爸爸特别牛开车都不开红绿灯);// 模板方法其实也不清楚正文部分到底应该是怎么写但是它知道子类必须写的。System.out.println(writeMain());System.out.println(有这样的爸爸太好了);}// 3. 设计一个抽象方法具体的实现交给子类来完成public abstract String writeMain();
} Teacher类
package cn.ensource.d6_abstact_template;public class Teacher extends People {Overridepublic String writeMain() {return 我的爸爸特别牛让我站在这里别走他去买个橘子;}
}
Student类
package cn.ensource.d6_abstact_template;public class Teacher extends People {Overridepublic String writeMain() {return 我的爸爸特别牛让我站在这里别走他去买个橘子;}
}
测试类
package cn.ensource.d6_abstact_template;public class Test {public static void main(String[] args) {// 目标搞清楚抽象类的应用场景设计模板方法模式// 场景学生和老师都要写一篇作文我的爸爸// 第一段是一样的// 正文部分自由发挥// 最后一段也是一样的Teacher t new Teacher();t.write();Student s new Student();s.write();}
} 多学一招
建议使用final关键字修饰模板方法为什么 模板方法禁止子类再去方法重写防止失效。 模板方法设计模式解决了什么问题
解决了方法中存在重复代码的问题。 模板方法设计模式应该怎么写
定义一个抽象类
在里面定义2个方法一个是模板方法放相同的代码一个是抽象方法具体实现交给子类完成。 模板方法建议使用什么关键字修饰为什么
final不再让子类方法重写override。