zoukankan      html  css  js  c++  java
  • 设计模式学习每日一记(3.工厂方法)

    工厂方法模式

    A.定义:

    定义一个创建对象的接口,让子类决定实例化哪一个类.工厂方法模式使一个product的实例化推迟到factory的子类中.

    B.定义分析:

    "定义一个创建对象的接口,让子类决定实例化哪一个类."和简单工厂一样,定义一个类,包含一个newProduct这样的创建对象的接口.

    "定义一个创建对象的接口让子类决定实例化哪一个类."和简单工厂不同的是,这个factory类不再自己的newProduct接口创建所有的对象了.而是通过派生子类的方法创建具体product.子类继承factory后,多态实现newProduct接口,在自己的接口中创建具体product.

    C.问题

    (1)和简单工厂有什么区别呢?

    factory不再自己创建所有对象,而是留出创建接口,给子类创建具体对象提供机会.而简单工厂在newProduct接口中根据参数不同创建了所有对象.

    (2)工厂方法模式的优势是什么?

    简单工厂把所有对象的创建都集中在newProduct中,这对于产品多或者产品在不断变化的系统,灵活性不够,每次都有修正简单工厂类,不易维护(修改一个实例化牵扯到其他代码),不易扩展(要修改过去的代码),不灵活(添加子类要修改过去代码.而工厂方法针对不同product都有相应的factory,增加新的product可以通过新增factory完成扩展,修改过去的product,可以通过修改对应的facotry完成,灵活性好,扩展性好,且可维护.

    (3)工厂方法模式的劣势是什么?

    对应每个product都要有一个factory,类变多了.

    作者:linucos

    出处:http://linucos.cnblogs.com

    声明因文章引起的任何问题,本博客不负任何责任;版权所有,欢迎转载 
  • 相关阅读:
    Cookie与Session
    发布网站
    WCF服务寄宿Windows
    JQuery:各种操作表单元素方法小结
    setTimeout()与 setInterval()
    CSS样式
    循环获取<ul>下拉列表的的值。进行对比,正确的家样式
    js定时器 实现提交成功提示
    flask 实现登录 登出 检查登录状态 的两种方法的总结
    flask 状态保持session和上下文session的区别
  • 原文地址:https://www.cnblogs.com/linucos/p/2223311.html
Copyright © 2011-2022 走看看