zoukankan      html  css  js  c++  java
  • 工厂模式

    描述:

    工厂模式也是属于创建型的设计模式,它的职责非常的明确,就是负责创建产品,也就是专门负责对象的创建,因此叫做工厂,在工厂模式中主要分为以下几种。
    1)简单工厂
       就是负责对象的创建,但是当产品不固定的情况下,简单工厂就不能满足需求,也就是工厂类会随着对象的增多而不停的修改,违背开闭原则。
    2)工厂方法
       工厂方法的目的就是为了解决上述的问题而提供的,它将工厂划分更加的精细,也就是每一种产品就对应一种工厂。
    3)抽象工厂
       工厂方法很好的解决了开闭原则,但是,随之的另一个问题也产生了。当需要的产品不是一个类型的时候,这时工厂方法就无法解决这类的问题,随之又横生出了抽象工厂。抽象工厂的目的就是为了解决产品族的问题。(同一系列不同类型的产品)
    4)万能工厂
       简单工厂+反射=万能工厂

    5)容器工厂
    容器工厂是在万能工厂之上的一种升华,它会预先初始化好需要管理的对象,并且这些对象是可复用的。

    描述:

    在开发的过程中,通常有些业务会有多种实现方式,而且在程序运行时,会根据当前的业务场景选择合适的实现,这种情况就适合使用策略模式。策略模式的特点就在于“多选一”的情况。

    策略模式中有一个重点就是:策略上下文,这个上下文其实就是已含了一个简单的工厂,根据用户的要求创建不同的实现类实例,并且把实现类的具体行为进行封装。因此客户端在调用的时候只面对这个上下文,而不需要知道具体那些策略在执行。

    注意:策略模式中隐藏一个简单工厂

    描述:

    责任链模式是一种线性的执行流程,多个对象都有机会去执行同一个任务,只是在执行过程中,由于执行的权利和范围不一样,那么当自己不能处理此任务时,就必须将这个任务抛给下一个执行者,以此类推,就形成了一个执行链。
    典型的例子就是Tomcat中的过滤器,当配置了多个过滤器时,就会形成一个过滤连,客户端发起的请求会经过这个过滤连上的每一个过滤器,但最终只有一个过滤器去处理这个请求。

    纯与不纯的责任链:
    1)纯的责任链是在整个链条中,只有一个对象可以去处理这个任务,而不是某个对象处理了一半,然后交给下一个执行者。
    2)纯的责任链中必须有一个对象去处理这个任务或请求,不i出现链中没有对象处理此任务或请求的情况。
     
    总结:通常在实际的开发场景中,多数都会出现不纯的责任链模型。其实这也是责任链模型的一种改变,为了迎合业务需求。不纯的责任链并不是说违反了这个设计模式和原则。

    描述:
    当一个任务被抽象分解成多个有序的子任务或步骤时,这种场景就适合使用模板方法模式,模板方法利用了继承的优点而产生的。并且每个子任务或步骤的实现方式不一样,他们被延迟到子类中去实现。但是在父类中有一个行为去统筹这些子任务或步骤的执行顺序,而这个行为就是模板方法。
     
    特点:
    1)多个子任务有序的执行
    2)子任务在子类中有不同的具体实现
    3)在父类中提供统一执行的方法
     
    钩子方法:
    如果某些子类在执行的过程不需要制定一些特定的步骤,那么钩子方法就是用于解决这个问题。

  • 相关阅读:
    vue实现图片路径传送
    title中添加小图标
    张钊的第一份作业
    张钊的第二份作业
    在Windows Server 2008 R2环境下安装活动目录失败的一个解决方法
    如何把SubVersion的服务程序变为Window后台服务形式
    一个关于静态方法调用的问题。
    WCF配置中遇到的问题:如何把Hostname修改成IP
    删除Visual Studio最近的项目(转载)
    有时候用ifstream或ofstream打开带有中文路径的文件会失败
  • 原文地址:https://www.cnblogs.com/BruningHUA/p/6221386.html
Copyright © 2011-2022 走看看