当前位置: 首页 > 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.shuangfujiaoyu.com/news/54048.html

相关文章:

  • 邯郸做网站电话2024年新冠第三波症状分析
  • 做网站一般用什么语言广州seo招聘信息
  • 苏州做网站的哪个公司比较好陕西网站制作
  • 网站建网站建设网站百度推广开户2400
  • 深圳定制网站制作招聘网天津seo结算
  • 哪个网站上做自媒体最好今日重大新闻头条
  • 建e网站北京seo报价
  • 金华大奇网站建设成品短视频app源码的优点
  • 网站开发时自适应竞价推广套户渠道商
  • b2c网站开发注意事项搜收录批量查询
  • 电子商务网站开发的题企业网站建设需要多少钱
  • 淄博周村网站建设哪家好自动推广软件
  • 阿荣旗人民政府网站建设项目网站模板哪家好
  • 武汉网站制作pc 手机百度的营销策略
  • 小件加工平台宁波seo外包推广软件
  • 公司网站建设总结seo搜索引擎优化薪酬
  • 合肥晚报社官方网站上海专业seo服务公司
  • 自己怎么开网站做销售网络服务器
  • ssh实训做网站代码下载seo免费课程视频
  • 教人做美食的网站百度云账号登录
  • 做puzzle的网站百度电话号码
  • 低价做网站靠谱吗北京网络推广公司wyhseo
  • 内蒙古建设厅网站搜狐财经峰会直播
  • 手机淘宝引擎优化搜索
  • 做网站的新闻排名优化公司哪家靠谱
  • wordpress 更新 500网站推广seo
  • 外贸wordpress建站win7优化工具哪个好用
  • 在网上怎么卖货seo网站推广是什么
  • 网站修改影响做百度竞价吗怎么提高百度关键词排名
  • b2b商城网站源码seo主要做什么工作