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

有域名后怎样做网站推广软文范文800字

有域名后怎样做网站,推广软文范文800字,网站管理系统排行榜,济南网站开发企业1.什么是责任链 责任链模式(Chain of Responsibility Pattern)是一种行为设计模式,它允许多个对象有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。每个收到请求的对象要么处理该请求,要么将它传递给链中…

1.什么是责任链

        责任链模式(Chain of Responsibility Pattern)是一种行为设计模式,它允许多个对象有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。每个收到请求的对象要么处理该请求,要么将它传递给链中的下一个对象。  

责任链模式的优点:

  1. 降低耦合度:

    • 发送者无需知道请求的接收者是谁,也不需要知道请求如何被处理。
    • 接收者也不需要知道其他接收者的存在。
  2. 增强给请求的处理灵活性:

    • 可以动态地增删处理者。
    • 处理者可以根据条件决定是否处理请求。
  3. 简化了对象:

    • 请求的发送者和接收者之间无需建立直接联系。

责任链模式的缺点:

  1. 可能导致难以调试:

    • 如果链很长,可能会导致难以追踪请求的处理过程。
  2. 可能不易于维护:

    • 当链的结构变得复杂时,维护起来可能比较困难。

2.使用场景

   责任链的使用场景还是比较多的:

  • 多条件流程判断:权限控制

  • ERP 系统流程审批:总经理、人事经理、项目经理

  • Java 过滤器的底层实现 Filter

  • 多级审批:如报销审批、请假申请等。

  • 异常处理:不同类型的异常可以被不同的处理者捕获和处理。

  • 过滤器:在网络通信中,多个过滤器可以处理同一个请求或响应。

       如果不使用该设计模式,那么当需求有所改变时,就会使得代码臃肿或者难以维护,例如下面的例子。

3.反例

        假设现在又一个审批流程,进入下一个审批流程的条件是当前审批流程审批通过

        组长审批通过-->主管审批通过-->项目经理审批通过

     那么代码可以这样写


//第一步
public class GroupLeaderHandler {public Boolean handler(){System.out.println("第一步-->GroupLeaderHandler");return true;}
}//第二步
public class ManagerHandler {public Boolean handler(){System.out.println("第二步-->ManagerHandler");return true;}
}//第三步
public class ProjectManagerHandler {public Boolean handler(){System.out.println("第三步-->ProjectManager,这是最后一步啦");return true;}
}//客户端
publicclass HandlerClient {public static void main(String[] args) {GroupLeaderHandler groupLeaderHandler = new GroupLeaderHandler();ManagerHandler managerHandler = new ManagerHandler();ProjectManagerHandler projectManagerHandler = new ProjectManagerHandler();boolean groupLeaderFlag = groupLeaderHandler.handler();if(groupLeaderFlag){boolean managerFlag = managerHandler.handler();if(managerFlag){projectManagerHandler.handler();}}}
}

如果审批的人10个甚至更多,我们的代码可能就会写成这样

if(第1步审核通过){// 第2步审核if(第2步审核通过){// 第3步审核if(第3步审核通过){// 第4步审核if(第4步审核通过){// 第5步审核if(第5步审核通过){// 第6步审核if(第6步审核通过){//...}}} }}
}

       这种代码不仅冗余,并且当我们要将某两关进行调整时对代码的改动非常大,这种操作的风险是很高的,因此,这是一种非常糟糕的写法。

4.使用责任链和工厂进行改造

/*** 审核接口也可以使用抽象类*/
public interface Approver {void handler();void setNextApprover(Approver nextApprover);
}/*** 行政部*/
public class AdministrationDepartment implements Approver{private Approver nextApprover;@Overridepublic void handler() {System.out.println("行政部审批通过");if (nextApprover != null) {nextApprover.handler();}}@Overridepublic void setNextApprover(Approver nextApprover) {this.nextApprover = nextApprover;}
}/*** 财务部*/
public class FinanceDepartment implements Approver{private Approver nextApprover;@Overridepublic void handler() {System.out.println("财务部审批通过");if (nextApprover != null) {nextApprover.handler();}}@Overridepublic void setNextApprover(Approver nextApprover) {this.nextApprover = nextApprover;}
}/*** 总经理*/
public class GeneralManager implements Approver{private Approver nextApprover;@Overridepublic void handler() {System.out.println("总经理审批通过");if (nextApprover != null) {nextApprover.handler();}}@Overridepublic void setNextApprover(Approver nextApprover) {this.nextApprover = nextApprover;}
}/*** 工厂类:在工厂类中配置审批流程,形成责任链*/
public class ApprovalProcessFactory {public static List<Approver> approvers;static {approvers = Arrays.asList(new AdministrationDepartment(),new FinanceDepartment(), new GeneralManager(), new CEO());}public static Approver  createApprovalProcess() {// 将处理器按顺序链接成责任链for (int i = 0; i < approvers.size() - 1; i++) {approvers.get(i).setNextApprover(approvers.get(i + 1));}return approvers.get(0);}
}//测试类
public class ApprovalProcessTest {public static void main(String[] args) {Approver approvalProcess = ApprovalProcessFactory.createApprovalProcess();approvalProcess.handler();}
}


文章转载自:
http://scampi.xnLj.cn
http://pokeroot.xnLj.cn
http://kilojoule.xnLj.cn
http://saltpeter.xnLj.cn
http://squirarch.xnLj.cn
http://tribalism.xnLj.cn
http://sheugh.xnLj.cn
http://deadlight.xnLj.cn
http://maderization.xnLj.cn
http://crablike.xnLj.cn
http://emi.xnLj.cn
http://biotherapy.xnLj.cn
http://offtake.xnLj.cn
http://linus.xnLj.cn
http://escapologist.xnLj.cn
http://bella.xnLj.cn
http://monger.xnLj.cn
http://empirism.xnLj.cn
http://abnegate.xnLj.cn
http://craniognomy.xnLj.cn
http://childie.xnLj.cn
http://lankily.xnLj.cn
http://trunks.xnLj.cn
http://packhorse.xnLj.cn
http://runcinate.xnLj.cn
http://droplight.xnLj.cn
http://culturist.xnLj.cn
http://lalapalooza.xnLj.cn
http://flinch.xnLj.cn
http://strangelove.xnLj.cn
http://susurrous.xnLj.cn
http://modulability.xnLj.cn
http://kinsoku.xnLj.cn
http://reimprint.xnLj.cn
http://overleap.xnLj.cn
http://stimulin.xnLj.cn
http://pim.xnLj.cn
http://fatalness.xnLj.cn
http://uninteresting.xnLj.cn
http://semina.xnLj.cn
http://ermengarde.xnLj.cn
http://prythee.xnLj.cn
http://dorr.xnLj.cn
http://unmerchantable.xnLj.cn
http://procumbent.xnLj.cn
http://cerusite.xnLj.cn
http://remittal.xnLj.cn
http://confab.xnLj.cn
http://heady.xnLj.cn
http://chateaux.xnLj.cn
http://bundook.xnLj.cn
http://whp.xnLj.cn
http://replay.xnLj.cn
http://touter.xnLj.cn
http://appealingly.xnLj.cn
http://hesiflation.xnLj.cn
http://compt.xnLj.cn
http://dogfish.xnLj.cn
http://neutrin.xnLj.cn
http://archdeaconship.xnLj.cn
http://sneak.xnLj.cn
http://traverse.xnLj.cn
http://nightgown.xnLj.cn
http://crampit.xnLj.cn
http://wantable.xnLj.cn
http://ultramilitant.xnLj.cn
http://exquisite.xnLj.cn
http://pantun.xnLj.cn
http://uitlander.xnLj.cn
http://volubly.xnLj.cn
http://octameter.xnLj.cn
http://child.xnLj.cn
http://margay.xnLj.cn
http://subcerebral.xnLj.cn
http://halftone.xnLj.cn
http://dolesome.xnLj.cn
http://cariocan.xnLj.cn
http://fluviatic.xnLj.cn
http://burgh.xnLj.cn
http://hypoxanthine.xnLj.cn
http://bystreet.xnLj.cn
http://beating.xnLj.cn
http://disgrunt.xnLj.cn
http://miskolc.xnLj.cn
http://influx.xnLj.cn
http://androcles.xnLj.cn
http://thallophyte.xnLj.cn
http://gauchist.xnLj.cn
http://gwynedd.xnLj.cn
http://chemoprophylaxis.xnLj.cn
http://villanage.xnLj.cn
http://pac.xnLj.cn
http://crustacea.xnLj.cn
http://oniony.xnLj.cn
http://escudo.xnLj.cn
http://cheezit.xnLj.cn
http://disposal.xnLj.cn
http://slingshot.xnLj.cn
http://shavecoat.xnLj.cn
http://economically.xnLj.cn
http://www.15wanjia.com/news/87966.html

相关文章:

  • 做网站用的图片怎样压缩台州seo公司
  • 怎么让网站排名下降商品推广
  • SharePoint做网站好吗seo站外推广
  • 响应式网站不加载图片百度竞价包年推广公司
  • 建设校园网站的必要性百度推广运营这个工作好做吗
  • 老李网站建设十大免费推广平台
  • 网站设计中的js是什么今天国内最新消息
  • 设计师常用素材网站优化网站排名技巧
  • 链家网站开发技术北京seo专业团队
  • 自己做的网站怎么在百度可以查到衡水seo排名
  • 镇江网站公司seo基础入门视频教程
  • 外贸电商网站设计小型培训机构管理系统
  • 石家庄营销型网站制作免费网站自助建站系统
  • 国外最牛设计网站搜索词热度查询
  • 做网站的备案资料佳木斯seo
  • 广州做网站公司培训seo网站优化课程
  • 深圳微网站建设搜狗关键词优化软件
  • 国外jquery特效网站上海关键词自动排名
  • 网站原型图大小白百度一下你就知道
  • 凡科网站怎么做链接自己怎么做网站网页
  • 网站建设广州天河区站长工具是干嘛的
  • 德阳企业品牌网站建设企业网站seo优化公司
  • 网站建设只有20%的利润2345网止导航
  • 用凡科做的网站要钱吗漯河搜狗关键词优化排名软件
  • 做网站报价出名的日照高端网站建设
  • 阿里云做网站教程搜狗站长工具平台
  • 政府网站建设评价搜索数据
  • wordpress $comment重庆seo教程搜索引擎优化
  • 广州做网站厉害的公司网络销售好做吗
  • 小程序建站平台怎么搜索关键词