設計模式 好菜每回味不同 建造者模式

2021-08-27 01:15:04 字數 2456 閱讀 2860

一,概述

builder模式的定義是:將乙個複雜物件的構建與其表示相分離,使得同樣的構建過程可以建立不同的表示。 首先它意圖是要構建乙個複雜的對像,而這個複雜的對像往往需要由好幾個子對像或分步驟來完成最終的這個物件的構建,而這個複雜物件的子對像經常需要不斷的變化,但它的構建過程是相對是穩定的。

精髓:通過乙個統一的工序或者約束構造出同一的物件。

二,引例

1)構造乙個小人,需要有腳、手、身體、頭

缺點:這樣構造的小人,容易忘記構造手,腳之類的。

void button1_click(object sender, eventargs e)

2)構造小人二

改進之處:為了避免每次構建小人,有可能出錯,所以將構建小人的方法寫入乙個類,每次構造時候,呼叫構造方法。

缺點:如果再構造乙個高個子類,忘記畫腿或者胳膊怎麼辦?

解決辦法:構建乙個人的基本類,把要實現的方法都寫成純虛函式。這樣避免缺少某一部分了

private class personthinbuilder //瘦子類 

}class personfatbuilder //胖子類

}

3)建造者模式

說明:如果有的小人需要畫的更細,則只需要在特定小人裡面新增相應的函式即可。只有在每個類都需要建立的時候才需要寫到抽象類中。

namespace 建造者模式

//如果是c++的話就要寫成純虛函式的形式

public abstract void buildhead();

public abstract void buildbody();

public abstract void buildarmleft();

public abstract void buildarmright();

public abstract void buildlegleft();

public abstract void buildlegright();

}class personthinbuilder : personbuilder //整合抽象類,必須實現抽象類中的每乙個函式

public override void buildhead()

public override void buildbody()

public override void buildarmleft()

public override void buildarmright()

public override void buildlegleft()

public override void buildlegright()

}class personfatbuilder : personbuilder //旁人類似

public override void buildhead()

public override void buildbody()

public override void buildarmleft()

public override void buildarmright()

public override void buildlegleft()

public override void buildlegright()

}class persondirector//指揮建造類(隔離使用者和建造過程的關聯)

public void createperson()

}}private void button1_click(object sender, eventargs e)

三,建造者模式解析

using system;

using system.collections.generic;

using system.text;

namespace 建造者模式

public void show() //列舉產品部件 }}

abstract class builder//抽象類,規定必須實現的三個部分

class concretebuilder1 : builder //具體的建造者類,繼承抽象類並實現其中所有介面

public override void buildpartb()

public override product getresult()

}class concretebuilder2 : builder //具體建造者類

public override void buildpartb()

public override product getresult()

}class director //整體實現各個子模組

}class program

}}

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

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

建造者設計模式

建造者模式又被稱呼為生成器模式,這種型別的設計模式屬於建立型模式,它提供了一種建立物件的最佳方式。使用多個簡單的物件一步一步構建成乙個複雜的物件,有點像造房子一樣一步步從地基做起到萬丈高樓。注重的是new完物件之後的過程,而不是new 物件 1 定義 將乙個複雜物件的構建與它的表示分離,使得同樣的構...

設計模式 建造者模式

在gof的23種設計模式中對builder pattern的定義是 將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。從程式角度來說,就是在基類定義某種事物建立的過程或業務流程,在子類進行重寫或是使用基類方法。這樣建立出來的例項不會因為過程或流程的丟失而使業務失敗。舉例來說,...