zoukankan      html  css  js  c++  java
  • 设计模式:抽象工厂

          了解了一下设计模式中有关抽象工厂的内容。

          定义:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。

          只看定义不是很好理解。抽象工厂模式是指可以向客户端提供一个接口,使客户端在不必指定产品的具体的情况下,创建多个产品族中的产品对象。在实际设计过程中,往往只是指定需要某一类产品,而对其中具体属性暂时没有明确要求,甚至会随着需求的不同进行修改,这样就不能把组件写死,不能限制到特定产品。这时定义抽象工厂类AbstractFactory,其中声明创建抽象产品对象的操作接口,随后在具体工厂类ConcreteFactory来将抽象工厂类中定义的接口进行具体实现。可以通过一些操作传递回各种抽象组件类创建的对象个体,这样用户程序可以得到具体产品而不需知道到底涉及了哪些具体类。这样保持了一种安全距离。

          根据里氏替换原则,任何接受父类型的地方,都应当能够接受子类型。因此,实际上系统所需要的,仅仅是类型与这些抽象产品角色相同的一些实例,而不是这些抽象产品的实例。换言之,也就是这些抽象产品的具体子类的实例。工厂类负责创建抽象产品的具体子类的实例。

          具体结构包括:

         抽象工厂类(AbstractFactory):声明创建抽象产品对象的操作接口。

         具体工厂类(ConcreteFactory):实现产生具体产品对象的操作。

         抽象产品类(AbstractProduct):声明一种产品对象的接口。

         具体产品类(ConcreteProduct):定义将被相应的具体工厂类产生的对象,并实现抽象产品类接口。

         以下为抽象工厂类图,取自:http://www.cnblogs.com/cbf4life/archive/2009/12/23/1630612.html

         

  • 相关阅读:
    ionic localstorage
    angular 中文鏈接
    把jqmobi 變成jQuery 的插件 從此使用jQuery
    jqmobi 的一些設置
    ionic ngcordova map 地圖
    ionic pull to refresh 下拉更新頁面
    json 對象的序列化
    鍵盤彈出,頁面佈局被推上去了.....
    Cordova V3.0.0中config.xml配置文件的iOS Configuration
    android ios 只能輸入數字 不能輸入小數點的 函數 cordova
  • 原文地址:https://www.cnblogs.com/hisbhubhu/p/5499596.html
Copyright © 2011-2022 走看看