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

    汽车及测试程序的演化过程
    Part 1:

    Code

    Part 2:
    问题:CarTestFramework只能测试一种Car。
    思路:把Car变成抽象类

    Code

    Part 3:
    问题:方法里只能有固定的几个car,当需要传递的car个数不一定时会出现问题
    思路:传递工厂类去创建对象

    Code

    Part 4:
    问题:CarFactory和HongqiCar相互依赖(只能对应HongqiCar)
    思路:抽象工厂CarFactory

    Code

    Factory Method模式的几个要点
     Factory Method模式主要用于隔离类对象的使用者和具体类型之间的耦合关系。面对一个经常变化的具体类型,紧耦合关系会导致软件的脆弱。
     Factory Method模式通过面向对象的手法,将所要创建的具体对象工作延迟到子类,从而实现一种扩展(而非更改)的策略,较好地解决了这种紧耦合关系。
     Factory Method模式解决“单个对象”的需求变化,Abstract Factory 模式解决“系列对象”的需求变化,Builder模式解决“对象部分”的需求变化。

    PS:以下个人观点:

    为什么要用抽象类?上述的AbstractCar为什么不用普通类来实现?

    因为将一个类声明为抽象类,可以确保它的子类一定是在完成所有功能之后才能实例化(如果没有实现抽象类的方法,子类也必须声明为抽象类,而抽象类是不能实例化的)。如果用普通类,子类功能没有实现时也能实例化来使用,相当于交给用户一个未完成的零部件,这是应该避免的。

  • 相关阅读:
    unity工厂模式
    unity对象池
    unity进阶项目------保卫萝卜(2)
    C#状态机
    unity进阶项目------保卫萝卜(1)
    OpenGL——外部读档+异常报错
    OpenGL入门之入门
    xlua build时 报错处理
    捕鱼达人Demo版下载
    UGUI-Text——自适应
  • 原文地址:https://www.cnblogs.com/vipcjob/p/1540601.html
Copyright © 2011-2022 走看看