山东省住房建设厅网站首页重庆做网站建设哪里好
news/
2025/9/28 4:46:35/
文章来源:
山东省住房建设厅网站首页,重庆做网站建设哪里好,做百度网站要多少钱,建立网站怎么做关键字目录 一、行为型模式
1.1、模板方法模式
1.1.1、概念
1.1.2、案例实现
1.1.3、优缺点
1.1.4、使用场景 一、行为型模式 一句话概括行为型模式
行为型模式#xff1a;类或对象间如何交互、如何划分职责#xff0c;从而更好的完成任务.
1.1、模板方法模式
1.1.1、概念 …目录 一、行为型模式
1.1、模板方法模式
1.1.1、概念
1.1.2、案例实现
1.1.3、优缺点
1.1.4、使用场景 一、行为型模式 一句话概括行为型模式
行为型模式类或对象间如何交互、如何划分职责从而更好的完成任务.
1.1、模板方法模式
1.1.1、概念
在一个算法骨架中将某些算法的步骤延迟倒子类中使得这些算法的可以根据具体的环境实现.
这就像是我们在设计一个程序的时候经常可能会遇到这种情况“设计了一个算法步骤确定了这些步骤的执行顺序但其中某些步骤还是未知需要根据具体的业务情况而定”此时就可以使用模板方法模式使其放到子类实现.
例如炒菜的步骤时固定的分为倒油、热油、倒入要炒食物、倒调料、翻炒这几个步骤其中 倒油、热油、翻炒这几个步骤是固定的而炒什么食物 和 倒调料 都是要根据情况而定的.
模板方法模式包含角色
抽象类给出一套算法的具体实现和执行顺序其中包含一些在子类中实现的抽象方法.具体子类实现抽象类中定义的抽象方法他们也是算法执行逻辑的组成步骤. 1.1.2、案例实现
例如上述炒菜案例.
/*** 抽象类: 做菜类*/
public abstract class DoCooking {public void doCooking() {//1.倒油pourOil();//2.热油hotOil();//3.倒食物pourFood();//4.添加调料addSeasoning();//5.翻炒fry();}private void pourOil() {System.out.println(倒油);}private void hotOil() {System.out.println(热油);}/*** 添加食物*/protected abstract void pourFood();/*** 添加调料*/protected abstract void addSeasoning();private void fry() {System.out.println(翻炒);}}/*** 具体子类: 处理鸡蛋*/
public class HandlerEgg extends DoCooking {Overrideprotected void pourFood() {System.out.println(将鸡蛋下锅);}Overrideprotected void addSeasoning() {System.out.println(添加酱油);}}/*** 具体子类: 处理米饭*/
public class HandlerRice extends DoCooking {Overrideprotected void pourFood() {System.out.println(将米饭下锅);}Overrideprotected void addSeasoning() {System.out.println(添加葱花);}}public class Client {public static void main(String[] args) {//1.炒鸡蛋HandlerEgg egg new HandlerEgg();egg.doCooking();System.out.println();//2.炒米饭HandlerRice rice new HandlerRice();rice.doCooking();}}执行结果如下 1.1.3、优缺点 优点 提高代码复用性将相同代码放到抽象的父类中不同实现放到不同子类中.
符合开闭原则将来如果增加一个相关业务吗只需要扩展实现一个子类无需修改原有代码. 缺点 增加系统复杂度每一个不同实现都需要定义一个子类会导致类的数量增加系统更加庞大. 1.1.4、使用场景
算法的整体步骤固定只有个别容易改变.需要通过子类来决定父类算法中的某步骤的具体实现.
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/920255.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!