建造者模式用來構建複雜物件的設計模式,指揮者用來提供構造方法,建造者用來提供材料,物件建立時只是乙個空架子,也可以用set
方法來自定義構造。
#include #include using namespace std;
class foundation ;
class thatchedfoundation : public foundation
};class roof ;
class thatchedroof : public roof
};class window ;
class door ;
class wall
virtual ~wall()
private:
window *window;
door *door;
};class thatchedwall : public wall
};class house
house& setfoundation(foundation *foundation)
walls.push_back(wall);
return *this;
}house& setroof(roof *roof)
virtual ~house()
}protected:
foundation *foundation;
vectorwalls;
roof *roof;
};//抽離出建造者
class housebuild
house& gethouse()
virtual void buildfoundation() = 0;
virtual void buildroof() = 0;
protected:
house &house;
};class thatchedhouse : public house ;
class thatchedhousebuild : public housebuild
void buildfoundation() override
}void buildroof() override
};class thatchedhousedirector
void makehouse()
private:
housebuild& build;
};int main()
C 設計模式 建造者模式
本文固定連線 using system using system.collections.generic using system.linq using system.text using system.threading.tasks public void show 抽象建造者類,確定產品有兩個部...
C 設計模式 建造者模式
ifndef builder h define builder h include 說明 乙個複雜物件的建立,其通常是由很多的子物件構成 建造者模式就提供了一種 封裝機制 來將各個物件的變化隔離開,最終,組合成複雜物件的過程是不會變的。定義 建造者模式 將乙個複雜的物件的構建與它的表示分離,使得同樣...
C 設計模式 建造者模式
建造者模式 在gof的 設計模式 可復用物件導向軟體的基礎 中是這樣說的 將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。這句話,似懂非懂的。乙個複雜物件的建立,其通常是由很多的子物件構成 如果乙個物件能夠直接就建立好了,那麼也不會稱之為複雜物件。由於專案中需求的變化,這個...