委派模式和模板方式

it2023-10-25  77

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

一、委托模式1.概念 二、模板方式1.概念 总结


提示:以下是本篇文章正文内容,下面案例可供参考

一、委托模式

1.概念

其实就是自己不干活,指派人干活

/** * 抽象员工 */ public interface Employee { void operator(String task); } /** * 员工A */ public class EmployeeA implements Employee { public void operator(String task) { System.out.println("员工A开始做事"+task); } } /** * 员工B */ public class EmployeeB implements Employee{ public void operator(String task) { System.out.println("员工B开始做事"+task); } } /** * 领导 */ public class Leader implements Employee{ public void operator(String task) { if("外卖".equals(task)){ new EmployeeA().operator(task); }else { new EmployeeB().operator(task); } } }

二、模板方式

1.概念

由抽象类定义流程,标志final不可修改,只开放一部分接口给子类修改

代码如下(示例):

/** * 模板方法 */ public abstract class Template { public final void operation(){ first(); second(); if(isAlive()){ third(); }else { System.out.println("game over"); } } protected void third() { System.out.println("通关"); } protected boolean isAlive() { return true; } protected void second(){ System.out.println("第二关"); }; protected void first(){ System.out.println("第一关"); }; } /** * 玩家A */ public class PlayA extends Template{ @Override protected boolean isAlive() { return false; } } /** * 玩家B */ public class PlayB extends Template{ @Override protected boolean isAlive() { return true; } }

该处使用的url网络请求的数据。


总结

模板模式使用继承;桥接模式避免继承;装饰器模式继承加组合;代理模式不一定继承,例如cglib是继承,jdk是接口模式

最新回复(0)