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

国内免费建网站经常用表格进行页面布局

国内免费建网站,经常用表格进行页面布局,360全景网站怎么做,信誉好的网站开发文章目录 前言正文一、生活中的例子二、Java代码实现2.1 类设计2.2 代码实现2.2.1 Employee2.2.2 ArchitectureDesignEmployer2.2.3 BackEmployer2.2.4 FrontEmployer2.2.5 Leader2.2.6 EmployeeStrongPointEnum2.2.7 Boss 2.3 测试2.3.1 Client2.3.2 测试结果 三、委派模式的优… 文章目录 前言正文一、生活中的例子二、Java代码实现2.1 类设计2.2 代码实现2.2.1 Employee2.2.2 ArchitectureDesignEmployer2.2.3 BackEmployer2.2.4 FrontEmployer2.2.5 Leader2.2.6 EmployeeStrongPointEnum2.2.7 Boss 2.3 测试2.3.1 Client2.3.2 测试结果 三、委派模式的优缺点3.1 优点3.2 缺点 前言 委派模式Delegate Pattern又叫委托模式是一种面向对象的设计模式。它不属于23种设计模式之中但同样也应用广泛。 熟悉java类加载的人都知道java有一个双亲委派模型。就是应用了这个委派模式的思想。但这不是我写本文的原因 委派模式允许对象组合实现与继承相同的代码重用。它的基本作用就是负责任务的调用和分配任务是一种特殊的静态处理代理可以理解为全权代理。 PS写本文的原因在于前几天看SpringMVC源码时遇到过。DispatcherServlet 的作用就是调节分派请求。最终使用HandlerMapping来处理这些请求。关于这个可以参考文章《SpringMVC原理设计原理启动原理工作原理》 的相关内容。 正文 一、生活中的例子 以生活中的例子来研究何为委派模式。首先看一下这张图 一个简单的模式老板派发任务到经理经理做协调委派任务到各个不同岗位的人员。 二、Java代码实现 在第一小节中的例子使用java代码对其进行设计并实现。 2.1 类设计 本次类的设计使用类图展示。 2.2 代码实现 创建一个简单的java项目本次使用java8。 项目结构如下 2.2.1 Employee package org.feng;/*** 员工** author feng*/ public interface Employee {/*** 处理任务接口** param task 任务*/void handle(String task); } 2.2.2 ArchitectureDesignEmployer package org.feng;import java.util.Set;/*** 架构设计师** author feng*/ public class ArchitectureDesignEmployer implements Employee {Overridepublic void handle(String task) {printWords();System.out.printf(现在开始处理【%s】任务%n, task);}private void printWords() {SetString strongPointSet EmployeeStrongPointEnum.getStrongPointSet(this.getClass());System.out.printf(我是架构设计师我擅长【%s】%n, String.join(, strongPointSet));} } 2.2.3 BackEmployer package org.feng;import java.util.Set;/*** 后端开发人员** author feng*/ public class BackEmployer implements Employee {Overridepublic void handle(String task) {printWords();System.out.printf(现在开始处理【%s】任务%n, task);}private void printWords() {SetString strongPointSet EmployeeStrongPointEnum.getStrongPointSet(this.getClass());System.out.printf(我是后端开发人员我擅长【%s】%n, String.join(, strongPointSet));} } 2.2.4 FrontEmployer package org.feng;import java.util.Set;/*** 前端开发人员** author feng*/ public class FrontEmployer implements Employee {Overridepublic void handle(String task) {printWords();System.out.printf(现在开始处理【%s】任务%n, task);}private void printWords() {SetString strongPointSet EmployeeStrongPointEnum.getStrongPointSet(this.getClass());System.out.printf(我是前端开发人员我擅长【%s】%n, String.join(, strongPointSet));} } 2.2.5 Leader package org.feng;import java.lang.reflect.InvocationTargetException; import java.util.HashMap; import java.util.Map; import java.util.TreeSet;/*** 经理** author feng*/ public class Leader implements Employee {private static final MapString, Employee EMPLOYEE_MAP;static {EMPLOYEE_MAP new HashMap(16);try {initEmployeeMap();} catch (NoSuchMethodException | InvocationTargetException | InstantiationException |IllegalAccessException e) {throw new RuntimeException(e);}}Overridepublic void handle(String task) {if (!EMPLOYEE_MAP.containsKey(task)) {System.out.printf(这个任务【%s】俺做不来%n, task);return;}// 经理委派任务到其他员工EMPLOYEE_MAP.get(task).handle(task);}private static void initEmployeeMap() throws NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException {EmployeeStrongPointEnum[] strongPoints EmployeeStrongPointEnum.values();for (EmployeeStrongPointEnum strongPoint : strongPoints) {Class? extends Employee employeeClass strongPoint.getEmployeeClass();Employee employee employeeClass.getDeclaredConstructor().newInstance();TreeSetString strongPointSet strongPoint.getStrongPoints();for (String str : strongPointSet) {EMPLOYEE_MAP.put(str, employee);}}EMPLOYEE_MAP.forEach((k, v) - {System.out.println(EMPLOYEE_MAP: task k , emp v);});System.out.println();} } 2.2.6 EmployeeStrongPointEnum package org.feng;import java.util.*;/*** 员工强项枚举** author feng*/ public enum EmployeeStrongPointEnum {ARCHITECTURE_DESIGN_EMPLOYER_STRONG_POINT(ArchitectureDesignEmployer.class, 架构设计, 架构优化),FRONT_EMPLOYER_STRONG_POINT(FrontEmployer.class, 平面设计, 页面修改, 页面调整),BACK_EMPLOYER_STRONG_POINT(BackEmployer.class, 数据库设计, 后端功能开发, 后端功能修改);private final Class? extends Employee employeeClass;private final String[] strongPoints;EmployeeStrongPointEnum(Class? extends Employee employeeClass, String... strongPoints) {this.employeeClass employeeClass;this.strongPoints strongPoints;}public Class? extends Employee getEmployeeClass() {return employeeClass;}public TreeSetString getStrongPoints() {return new TreeSet(Arrays.asList(strongPoints));}private static final MapClass? extends Employee, TreeSetString EMP_STRONG_POINT_CACHE_MAP new HashMap();static {for (EmployeeStrongPointEnum strongPointEnum : EmployeeStrongPointEnum.values()) {EMP_STRONG_POINT_CACHE_MAP.put(strongPointEnum.getEmployeeClass(), strongPointEnum.getStrongPoints());}}public static SetString getStrongPointSet(Class? extends Employee employeeClass) {TreeSetString treeSet EMP_STRONG_POINT_CACHE_MAP.get(employeeClass);if(treeSet null || treeSet.isEmpty()) {return Collections.emptySet();}return treeSet;} } 2.2.7 Boss package org.feng;/*** 老板** author feng*/ public class Boss {/*** 委派任务到经理** param task 任务* param leader 经理*/public void delegateTask(String task, Leader leader) {leader.handle(task);} } 2.3 测试 2.3.1 Client package org.feng;/*** 测试** author feng*/ public class Client {public static void main(String[] args) {Boss boss new Boss();Leader leader new Leader();boss.delegateTask(架构设计, leader);boss.delegateTask(页面修改, leader);boss.delegateTask(测试页面功能, leader);} } 2.3.2 测试结果 EMPLOYEE_MAP: task 后端功能开发, emp org.feng.BackEmployer448139f0 EMPLOYEE_MAP: task 页面修改, emp org.feng.FrontEmployer7cca494b EMPLOYEE_MAP: task 页面调整, emp org.feng.FrontEmployer7cca494b EMPLOYEE_MAP: task 架构设计, emp org.feng.ArchitectureDesignEmployer7ba4f24f EMPLOYEE_MAP: task 平面设计, emp org.feng.FrontEmployer7cca494b EMPLOYEE_MAP: task 后端功能修改, emp org.feng.BackEmployer448139f0 EMPLOYEE_MAP: task 架构优化, emp org.feng.ArchitectureDesignEmployer7ba4f24f EMPLOYEE_MAP: task 数据库设计, emp org.feng.BackEmployer448139f0我是架构设计师我擅长【架构优化架构设计】 现在开始处理【架构设计】任务 我是前端开发人员我擅长【平面设计页面修改页面调整】 现在开始处理【页面修改】任务 这个任务【测试页面功能】俺做不来三、委派模式的优缺点 3.1 优点 通过任务委派能够将一个大型的任务细化然后通过统一管理这些子任务的完成情况实现任务的跟进能够加快任务执行的效率。 3.2 缺点 任务委派方式需要根据任务的复杂程度进行不同的改变在任务比较复杂的情况下可能需要进行多重委派容易造成絮乱。
http://www.pierceye.com/news/699951/

相关文章:

  • wap站是什么意思啊阿里云建设网站的步骤
  • 网站备案 异地可以做视频的网站
  • 淘宝网站c 设计怎么做安卓手机做网站
  • 嘉兴做网站建设的公司电商网名大全
  • 欢迎访问中国建设银行网站密码重置wordpress wp_parse_args
  • 普通电脑可以做网站服务器吗找人做网站需要什么条件
  • 长沙公司网站的建设网站图片尺寸
  • 高端网站定制费用是多少php网站建设制作
  • 广州营销型网站建设费用wordpress最新版下载
  • 洛阳网站设计公司xiamiplayer for wordpress
  • 做网站模版形象墙logo墙设计图
  • 视频网站怎么做防盗链好的装修效果图网站
  • 个人音乐分享网站源码移动网站建设的前景
  • 谷歌自建站和优化网站有很多304状态码
  • 甘肃 网站建设高端品牌护肤品
  • 南昌网站建设公司哪家好导航类网站怎么做
  • 织梦如何做汽车贸易网站wordpress调用主站的文章
  • 软件公司网站模板下载上海史特网站建设
  • 辽宁省锦州市住房与城乡建设厅网站网站的建设特色
  • 笨鸟网站开发如何做vip微信电影网站
  • 网站正在建设中图片南召seo快速排名价格
  • 网站怎么上线东莞网站seo优化托管
  • 网站建设免费的服务器关键词云图
  • 深圳网站建设哪家便宜彩票网站怎么做推广
  • 阿凡达网站建设西安免费做网站公司
  • 佛山的网站建设公司打鱼网站开发
  • 洛阳外贸网站推广easyui 网站设计
  • 租赁网站空间东营市建设
  • 网络课程网站模板wordpress 编辑器 插件
  • 绝对大气漂亮的响应式网站后台模板什么是网络营销与概念