提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
提示:以下是本篇文章正文内容,下面案例可供参考
一、委托模式
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是接口模式