簡單原廠模式 - python

來源:互聯網
上載者:User

標籤:集中   div   介面   需要   需求   複雜   pre   條件   簡單工廠   

1.典型的適合簡單原廠模式的例子是計算機

def create_operator(op):    if op == ‘+‘:        return AddOperation()    elif op == ‘-‘:        return SubOperation()    elif op ==  ‘*‘:        return MulOperation()    elif op == ‘/‘:        return DivOperation()op = create_operator(‘+‘)op.Calc(1, 2)


簡單原廠模式的組成要素
  • 工廠函數

負責具體產品對象的建立工作,是該模式的核心。當情境比較複雜時,可能需要用一個工廠類來負責產品的建立。

  • 產品的抽象介面或抽象類別

抽象所有產品的公用介面

  • 具體產品類

抽象介面的具體實作類別

缺點
  • 由於工廠類集中了所有執行個體的建立邏輯,違反了高內聚責任分配原則,將全部建立邏輯集中到了一個工廠類中
  • 它所能建立的類只能是事先考慮到的,如果需要添加新的類,則就需要改變工廠類了
  • 當系統中的具體產品類不斷增多時候,可能會出現要求工廠類根據不同條件建立不同執行個體的需求.這種對條件的判斷和對具體產品類型的判斷交錯在一起,很難避免模組功能的蔓延,對系統的維護和擴充非常不利;

簡單原廠模式 - python

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.