Python設計模式之建造者模式例項詳解

2022-10-03 12:27:12 字數 1824 閱讀 9621

建造者模式(builder pattern):將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示

下面是乙個建造者模式的demo

#!/usr/bin/env python

# -*- coding:utf-8 -*-

__author__ = 'andy'

"""大話設計模式

設計模式——建造者模式

建造者模式(builder):將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以常見不同的表示

特性: 指揮者(director) 指揮 建造者(builder) 建造 product

"""import abc

class builder(object):

__metaclass__ = abc.abcmeta

@abc.abstractmethod

def create_header(self):

pass

@abc.abstractmethod

def create_body(self):

pass

@abc.abstractmethod

def create_hand(self):

pass

@abc.abstractmethod

def create_foot(self):

pass

class thin(builder):

def create_header(self):

程式設計客棧 print '瘦子的頭'

def create_body(self):

print '瘦子的身體'

def create_hand(self):

print '瘦子的手'

def create_foot(self):

print '瘦子的腳'

class fat(builder):

def create_header(self):

print '胖子的頭'

def create_body(self):

print '胖子的身體'

def create_hand(self):

print '胖程式設計客棧子的手'

def create_foot(self):

print '胖子的腳'

class director(object):

def __init__(self, person):

self.person = person

def create_preson(self):

self.person.create_header()

self.person.create_body()

self.person.create_hand()

self.person.create_foot()

if __name__=="__main__":

thin = thin()

fat = fat()

director_thin = director(thin)

director_fat = director(fat)

director_thin.create_preson()

director_fat.create_preson()

執行結果:

瘦子的頭

瘦子的身體

瘦子的手

瘦子的腳

胖子的頭

胖子的身體

胖子的手

胖子的腳

上面類的設計如下圖:

指揮者director 呼叫建造者builder的物件 具體的建造過程是在builder的子類中實現的

四 JavaScript設計模式之建造者模式

一 建造者模式模式概念 建造者模式可以將乙個複雜的物件的構建與其表示相分離,使得同樣的構建過程可以建立不同的表示。也就是說如果我們用了建造者模式,那麼使用者就需要指定需要建造的型別就可以得到它們,而具體建造的過程和細節就不需要知道了。建造者模式實際就是乙個指揮者,乙個建造者,乙個使用指揮者呼叫具體建...

三 Python 設計模式之建造者

原教程 大話設計模式 設計模式 建造者模式 建造者模式 builder 將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以常見不同的表示 特性 指揮者 director 指揮 建造者 builder 建造 product 建造者模式 builder pattern 將乙個複雜物件的構建與它的...

設計模式之建造者

這兩天事太多了,沒來的及更新。今天早點更新。今天扯建造者模式。大家都知道乙個物件的生成是有過程的。表面上我們看的是new,其實編譯器是有一定細節指令 的。比如我們建房子,需要挖地基,砌牆,上頂等。這些操作步驟不需要我們動手,交給泥瓦工就行了。我們提供的只是,這個宅基地地方,材料等而已。2.引用型別在...