亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在Python中使用抽象工廠模式

發布時間:2021-04-02 16:30:06 來源:億速云 閱讀:147 作者:Leah 欄目:開發技術

如何在Python中使用抽象工廠模式?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

抽象工廠模式(Abstract Factory Pattern):提供一個創建一系列相關或相互依賴對象的接口,而無需指定它們的類

下面是一個抽象工廠的demo:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = 'Andy'
"""
大話設計模式
設計模式——抽象工廠模式
抽象工廠模式(Abstract Factory Pattern):提供一個創建一系列相關或相互依賴對象的接口,而無需指定它們的類
"""
import sys
#抽象用戶表類
class User(object):
  def get_user(self):
    pass
  def insert_user(self):
    pass
#抽象部門表類
class Department(object):
  def get_department(self):
    pass
  def insert_department(self):
    pass
#操作具體User數據庫類-Mysql
class MysqlUser(User):
  def get_user(self):
    print 'MysqlUser get User'
  def insert_user(self):
    print 'MysqlUser insert User'
#操作具體Department數據庫類-Mysql
class MysqlDepartment(Department):
  def get_department(self):
    print 'MysqlDepartment get department'
  def insert_department(self):
    print 'MysqlDepartment insert department'
#操作具體User數據庫-Orcal
class OrcaleUser(User):
  def get_user(self):
    print 'OrcalUser get User'
  def insert_user(self):
    print 'OrcalUser insert User'
#操作具體Department數據庫類-Orcal
class OrcaleDepartment(Department):
  def get_department(self):
    print 'OrcalDepartment get department'
  def insert_department(self):
    print 'OrcalDepartment insert department'
#抽象工廠類
class AbstractFactory(object):
  def create_user(self):
    pass
  def create_department(self):
    pass
class MysqlFactory(AbstractFactory):
  def create_user(self):
    return MysqlUser()
  def create_department(self):
    return MysqlDepartment()
class OrcaleFactory(AbstractFactory):
  def create_user(self):
    return OrcaleUser()
  def create_department(self):
    return OrcaleDepartment()
if __name__ == "__main__":
  db = sys.argv[1]
  myfactory = ''
  if db == 'Mysql':
    myfactory = MysqlFactory()
  elif db == 'Orcal':
    myfactory = OrcaleFactory()
  else:
    print "不支持的數據庫類型"
    exit(0)
  user = myfactory.create_user()
  department = myfactory.create_department()
  user.insert_user()
  user.get_user()
  department.insert_department()
  department.get_department()

上面類的設計如下圖:

如何在Python中使用抽象工廠模式

優點:

具體工廠類如MysqlFactory在一個應用中只需要初始化一次,這樣改動一個具體工廠變得很容易,只需要改變具體工廠就可以改變整個產品的配置。

具體的創建實例過程與客戶端分離,客戶端通過他們的抽象接口操縱實例,產品的具體類名也被具體工廠的實現分離,不會出現在客戶端代碼中

缺點:在新增一個具體工廠就需要增加多個類才能實現

關于如何在Python中使用抽象工廠模式問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

玉门市| 巴东县| 宾川县| 南宫市| 分宜县| 万荣县| 绥江县| 南陵县| 朝阳市| 东阿县| 宜宾市| 托克托县| 荆门市| 福贡县| 诸暨市| 江油市| 合水县| 唐山市| 丽水市| 宜丰县| 辉县市| 瑞昌市| 新巴尔虎右旗| 台江县| 陆川县| 白河县| 团风县| 桦南县| 榆社县| 成都市| 利津县| 耿马| 峨眉山市| 大丰市| 温宿县| 恩施市| 通道| 临清市| 普定县| 淄博市| 灵山县|