zoukankan      html  css  js  c++  java
  • 简单工厂、工厂方法、抽象工厂

    共同点

    实现了将对象的创建与使用解耦

    不同点

    简单工厂通过封装对象的创建,实现了对象的创建提取到简单工厂的创建方法,使其可以独立变化与复用。工厂方法、抽象工厂通过在高层组件(Creater)定义抽象依赖,根据依赖倒置原则,实现了客户端与具体产品的解耦。

    工厂方法:通过在Creater定义抽象的Product,Creater中的代码都根据抽象的Product编写,ConcreteCreater的工厂方法定义的返回值也是抽象的Product,高层组件(Creater)和低层组件(具体Product)都依赖抽象的Product,彼此之间没有相互依赖。

    抽象工厂: 客户端只依赖抽象工厂(AbstractFactory)和抽象的成员(AbstractMember),不依赖任何具体的工厂或者成员,具体的工厂类方法的返回值也是抽象的成员(AbstractMember),高层组件(客户端)与低层组件(具体Member类)都依赖抽象的成员(AbstractMember),彼此之间没有相互依赖。

    联系

    工厂方法模式的工厂方法一般使用简单工厂实现,抽象工厂每个CreateMember方法一般使用工厂模式实现。

    抽象工厂接口内的每个方法都负责创建一个具体产品,同时我们使用实现抽象工厂的子类来提供这些具体的做法,所以在抽象工厂中使用工厂方法实现生产方法是相当自然的。

  • 相关阅读:
    问题解决(2)
    问题解决(1)
    ubuntu16.04spyder闪退
    ubuntu16.04安装caffe
    python做批量剪切、旋转等小程序
    html中如何使得改变背景的透明度时,背景上的文字透明度不被改变
    css下拉菜单制作
    float浮动
    css盒子模型
    css选择器,背景样式,文本属性
  • 原文地址:https://www.cnblogs.com/Saints/p/12601495.html
Copyright © 2011-2022 走看看