当前位置: 首页 > news >正文

网站风格分类有哪些看广告赚钱的平台

网站风格分类有哪些,看广告赚钱的平台,如何用公司名称搜到公司网站,大型门户网站制作教程文章目录 一、概念二、角色三、代码实现四、委派模式在源码中的体现五、委派模式的优缺点优点缺点 一、概念 委派模式(Delegate Pattern)又叫委托模式,是一种面向对象的设计模式。委派模式是一种行为模式,不属于GOF23种设计模式之中基本作用…

文章目录

  • 一、概念
  • 二、角色
  • 三、代码实现
  • 四、委派模式在源码中的体现
  • 五、委派模式的优缺点
    • 优点
    • 缺点


一、概念

  1. 委派模式(Delegate Pattern)又叫委托模式,是一种面向对象的设计模式。
  2. 委派模式是一种行为模式,不属于GOF23种设计模式之中
  3. 基本作用是负责任务的调度,是一种特殊的静态代理。

二、角色

抽象任务角色(Task):定义一个抽象接口,它有若干实现类。
委派者角色(Delegate):负责在各个具体角色实例之间做出决策,并判断并调用具体实现的方法。
具体任务角色(Concrete) :真正执行任务的角色

现实场景:老板(Boss)给项目经理(Leader)下达任务,项目经理会根据实际情况给每个员工派发工作任务,待员工把工作任务完成之后,再由项目经理汇报工走进度和结果给老板。

三、代码实现

创建IEmployee员工接口:

public interface IEmployee {/*** 执行任务* @param task*/void doing(String task);
}

创建员工EmployeeA类:

public class EmployeeA  implements IEmployee{protected String goodAt="编程";@Overridepublic void doing(String task) {System.out.println("我是员工A,我擅长"+goodAt+",我现在开始做"+task+"工作");}
}

创建员工EmployeeB类

public class EmployeeB implements IEmployee{protected String goodAt="平面设计";@Overridepublic void doing(String task) {System.out.println("我是员工B,我擅长"+goodAt+",我现在开始做"+task+"工作");}
}

创建项目经理Leader类:

public class Leader implements IEmployee{private Map<String, IEmployee> employee=new HashMap<>();@SuppressWarnings("all")public Leader(){employee.put("爬虫",new EmployeeA());employee.put("海报图",new EmployeeB());}@Overridepublic void doing(String task) {if(!employee.containsKey(task)){System.out.println("这个任务"+task+"超出我的能力范围");return;}employee.get(task).doing(task);}
}

创建Boss下达命令:

public class Boss {public void command(String task,Leader leader) {leader.doing(task);}
}

测试代码:

public class Test {public static void main(String[] args) {new Boss().command("海报图",new Leader());new Boss().command("爬虫",new Leader());new Boss().command("卖手机",new Leader());}
}

四、委派模式在源码中的体现

JDK的双亲委派机制:

 protected Class<?> loadClass(String name, boolean resolve)throws ClassNotFoundException{synchronized (getClassLoadingLock(name)) {// First, check if the class has already been loadedClass<?> c = findLoadedClass(name);if (c == null) {long t0 = System.nanoTime();try {if (parent != null) {c = parent.loadClass(name, false);} else {c = findBootstrapClassOrNull(name);}} catch (ClassNotFoundException e) {// ClassNotFoundException thrown if class not found// from the non-null parent class loader}if (c == null) {// If still not found, then invoke findClass in order// to find the class.long t1 = System.nanoTime();c = findClass(name);// this is the defining class loader; record the statssun.misc.PerfCounter.getParentDelegationTime().addTime(t1 - t0);sun.misc.PerfCounter.getFindClassTime().addElapsedTimeFrom(t1);sun.misc.PerfCounter.getFindClasses().increment();}}if (resolve) {resolveClass(c);}return c;}}

Method中的invoke方法

@CallerSensitivepublic Object invoke(Object obj, Object... args)throws IllegalAccessException, IllegalArgumentException,InvocationTargetException{if (!override) {if (!Reflection.quickCheckMemberAccess(clazz, modifiers)) {Class<?> caller = Reflection.getCallerClass();checkAccess(caller, clazz, obj, modifiers);}}MethodAccessor ma = methodAccessor;             // read volatileif (ma == null) {ma = acquireMethodAccessor();}return ma.invoke(obj, args);}

具体实现类:

class DelegatingMethodAccessorImpl extends MethodAccessorImpl {private MethodAccessorImpl delegate;DelegatingMethodAccessorImpl(MethodAccessorImpl var1) {this.setDelegate(var1);}public Object invoke(Object var1, Object[] var2) throws IllegalArgumentException, InvocationTargetException {return this.delegate.invoke(var1, var2);}void setDelegate(MethodAccessorImpl var1) {this.delegate = var1;}
}

Spring中的DispatchServlet也用到了委派模式。

五、委派模式的优缺点

优点

通过任务委派能够将一个大型的任务细化,然后通过统一管理这些子任务的完成情况实现任务的跟进,能够加快任务执行的效率。

缺点

任务委派模式需要根据任务的复杂程度进行不同的改变,在任务比较复杂的情况下可能需要进行多重委派,容易造成紊乱。

http://www.khdw.cn/news/35052.html

相关文章:

  • 备案 增加网站电脑培训学校
  • 做网站的作文百度收录批量查询
  • 网站备案怎么弄淘宝推广方法有哪些
  • cms软件有什么功能关键词优化公司费用多少
  • 网站别人做的我自己怎么续费上海网站快速排名提升
  • 企业网站建设中图片优化的方法做电商必备的几个软件
  • 前端搜索网站引擎怎么做商业公司的域名
  • 怎么做自己淘宝优惠券网站my63777免费域名查询2023年
  • 长沙的互联网网站公司哪家好网络营销的主要方式
  • php网站开发哪个培训学校好百度地图下载2022新版安装
  • 盐城网站建设24gx全球疫情今天最新消息
  • 东莞网站建设百度地图百度搜索收录入口
  • 中国建盏logoseo的培训网站哪里好
  • 基于web旅游网站的建设百度手机
  • 网站开发课程设计报告整合营销推广
  • 哈尔滨门户网站制作哪家好网站域名在哪里查询
  • 除了wordpress还有什么可以建站宁波优化网页基本流程
  • 图片站 wordpress产品运营推广方案
  • 用源码做网站济南网站建设哪家专业
  • wordpress hero theme云优化seo软件
  • 上海网页设计是什么博客seo优化技术
  • 做金融培训的网站好的营销网站设计公司
  • h5网站开发潍坊seo招聘
  • wordpress 焦点图网站优化软件费用
  • 快速的网站建设汕头网站设计
  • 网站服务器 要求北京sem
  • 网站设计公司 上二十条优化措施原文
  • 网站怎么做微博链接软文营销的五大注意事项
  • 网站搜索框设计google play 应用商店
  • 网站建设公司有哪些内容世界羽联巡回赛总决赛