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

做网站网页的工作怎么样聚享游网站如何做推广

做网站网页的工作怎么样,聚享游网站如何做推广,wordpress加载html代码,六安马昌友责任链模式 顾名思义#xff0c;责任链模式#xff08;Chain of Responsibility Pattern#xff09;为请求创建了一个接收者对象的链。这种模式给予请求的类型#xff0c;对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。 在这种模式中#xff0c;通… 责任链模式 顾名思义责任链模式Chain of Responsibility Pattern为请求创建了一个接收者对象的链。这种模式给予请求的类型对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。 在这种模式中通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求那么它会把相同的请求传给下一个接收者依此类推。 介绍 意图 避免请求发送者与接收者耦合在一起让多个对象都有可能接收请求将这些对象连接成一条链并且沿着这条链传递请求直到有对象处理它为止。 主要解决 职责链上的处理者负责处理请求客户只需要将请求发送到职责链上即可无须关心请求的处理细节和请求的传递所以职责链将请求的发送者和请求的处理者解耦了。 何时使用 在处理消息的时候以过滤很多道。 如何解决 拦截的类都实现统一接口。 关键代码 Handler 里面聚合它自己在 HandlerRequest 里判断是否合适如果没达到条件则向下传递向谁传递之前 set 进去。 应用实例 JS 中的事件冒泡。spring 拦截器。JAVA WEB 中 Apache Tomcat 对 Encoding 的处理Struts2 的拦截器 优点 降低耦合度。它将请求的发送者和接收者解耦。简化了对象。使得对象不需要知道链的结构。增强给对象指派职责的灵活性。通过改变链内的成员或者调动它们的次序允许动态地新增或者删除责任。增加新的请求处理类很方便。 缺点 不能保证请求一定被接收。系统性能将受到一定影响而且在进行代码调试时不太方便可能会造成循环调用。可能不容易观察运行时的特征有碍于除错。 使用场景 有多个对象可以处理同一个请求具体哪个对象处理该请求由运行时刻自动确定。在不明确指定接收者的情况下向多个对象中的一个提交一个请求。可动态指定一组对象处理请求。 注意事项 在 JAVA WEB 中遇到很多应用。 主要涉及到以下几个核心角色 抽象处理者Handler: 定义一个处理请求的接口通常包含一个处理请求的方法如 handleRequest和一个指向下一个处理者的引用后继者。 具体处理者ConcreteHandler: 实现了抽象处理者接口负责处理请求。如果能够处理该请求则直接处理否则将请求传递给下一个处理者。 客户端Client: 创建处理者对象并将它们连接成一条责任链。通常客户端只需要将请求发送给责任链的第一个处理者无需关心请求的具体处理过程。 代码实现 以公司中的OA申请为例有各种申请请假、离职、团建、加班、购买设备等不同申请需要的权限不一样需要审批的人不一样。 定义申请类 /*** 申请*/ public class Petition {/*** 标题*/private String name;/*** 内容*/private String content;private Type type;/*** 申请人*/private String asker;public Petition(String name, String content, String asker, Type type) {this.name name;this.content content;this.asker asker;this.type type;}public String getName() {return name;}public String getContent() {return content;}public Type getType() {return type;}public String getAsker() {return asker;}public enum Type {/*** 请假*/LEAVE,/*** 加班*/OVERTIME,/*** 离职*/OFF_WORK,/*** 团建*/TRAVEL,/*** 购买设备*/BUY_EQUIPMENT,/*** 其他*/OTHER} } 定义抽象职位 /*** 职位*/ public abstract class Position {private Position nextPosition;public Position getNextPosition() {return this.nextPosition;}public Position nextPosition(Position nextPosition) {this.nextPosition nextPosition;return this.nextPosition;}public abstract boolean handle(Petition petition);}定义小组长小组长只能审批类型为其他的申请 /*** 小组长*/ public class TeamLeader extends Position{Overridepublic boolean handle(Petition petition) {if (petition.getType() Petition.Type.OTHER){System.out.println(小组长审批 petition.getName() 通过);return true;}//小组长没有权限提交给上一级审批return getNextPosition().handle(petition);} } 定义经理经理能够审批加班请假团建的申请 /*** 项目经理*/ public class Manager extends Position{Overridepublic boolean handle(Petition petition) {if (petition.getType() Petition.Type.OVERTIME|| petition.getType() Petition.Type.LEAVE|| petition.getType() Petition.Type.TRAVEL){System.out.println(项目经理审批 petition.getName() 通过);return true;}//项目经理没有权限提交给上一级审批return getNextPosition().handle(petition);} }定义总经理能够审批购买设备离职的申请 /*** 总经理*/ public class GeneralManager extends Position{Overridepublic boolean handle(Petition petition) {if (petition.getType() Petition.Type.BUY_EQUIPMENT||petition.getType() Petition.Type.OFF_WORK){System.out.println(总经理经理审批 petition.getName() 通过);return true;}else {System.out.println(总经理经理审批 petition.getName() 不通过);return false;}} }客户端 public class Client {public static void main(String[] args) {Manager manager new Manager();TeamLeader teamLeader new TeamLeader();GeneralManager generalManager new GeneralManager();//小组长上级项目经理项目经理上级总经理teamLeader.nextPosition(manager).nextPosition(generalManager);teamLeader.handle(new Petition(Buy equipment, I need to buy a new computer, Jim, Petition.Type.BUY_EQUIPMENT));teamLeader.handle(new Petition(Leave, I need to leave, Jim, Petition.Type.LEAVE));teamLeader.handle(new Petition(Overtime, I need to work overtime, Jim, Petition.Type.OVERTIME));teamLeader.handle(new Petition(Off work, I need to go off work, Jim, Petition.Type.OFF_WORK));teamLeader.handle(new Petition(Travel, I need to travel, Jim, Petition.Type.TRAVEL));teamLeader.handle(new Petition(Other, I need to do something else, Jim, Petition.Type.OTHER));} }
http://www.hkea.cn/news/14570657/

相关文章:

  • 学做窗帘的网站软件培训班
  • 自己做的网站可以买东西吗东莞哪家公司做网站好
  • pc端网站模型建设工具ppt设计教程网
  • 中山网站建设模板招商帮忙建站的公司
  • 提供网站建设方案服务网站h标签
  • 企业培训考试系统官网成都网站制作实力乐云seo
  • 做电商网站要多少钱义乌的论坛网站建设
  • 网站建设优化文章网站建设论文读书笔记
  • 网站建设需要知识徐州网站运营
  • 网站除了做流量还需要什么网页游戏服务端
  • 中国勘察设计行业信息化建设网站网站页面是自己做还是使用模板
  • 美工外包网站活动网站怎么建设
  • 网站推广方法主要有什么现在还做响应式网站吗
  • 青山网站建设零基础搭建网站
  • vivo官方网站进入荣昌集团网站建设
  • wordpress建站视屏网站是不是每年都要续费
  • 江苏建设信息网站深圳东门步行街图片
  • 瑞昌网站建设做网站多少钱 网络服务
  • 门户网站建设参考文献网页背景图片高清
  • 公司可以备案几个网站荆州建设局网站
  • 网站制作预算中国建设机械职业教育网证书查询
  • 制作论文招聘网站的app开发公司价格
  • 微商城手机网站制作公司科技让生活更美好作文450字
  • 温州哪里可以做企业网站湛江网站推广优化
  • 地图制作网站网站建设技术架构和语言
  • 微网站建设教程视频如何给自己的公司做网站
  • 侨联 文化宣传 侨联网站建设wordpress论坛哪个功能全面
  • 培训医院网站建设网站二级目录打不开
  • 房山营销型网站建设宁波快速建站模板
  • 江门市建设工程安全监督网站贸易公司如何找客户