我對C++ 11還是個新手。什麼C++習語/模式是這樣的
前段時間我問以下問題:
Best method to implement an abstract factory pattern
爲了研究更多一些,我想知道這是什麼C++成語的名稱。
這裏我稱它爲pimpl
,但我不確定這是否是正確的名稱。
整個事情的目的是在從工廠返回Shape對象時隱藏原始指針或智能指針。使用這個「模式」工廠將能夠返回一個和相同的類型,具體的實現將被封裝在對象內部。
它也非常類似於decorator
,除非它不裝飾任何東西。
除了外部接口與「內部」接口相同之外,人們也可以發現類似於adapter
。
class PimplShape : public Shape{
Shape *sh;
public:
PimplShape(Shape *sh) : sh(sh){
}
virtual ~PimplShape() override{
delete sh;
}
virtual void process() override {
sh->process();
}
};
「從工廠返回Shape對象時」這是如何完成的?您沒有方法返回包含的Shape。而且,這將創建一個完整的Shape,它本身必須包含指向另一個Shape的指針。我不確定那是你想要的,是嗎?似乎對我來說是多餘的。 –
http://stackoverflow.com/questions/31494734/best-method-to-implement-an-abstract-factory-pattern - 檢查這一點。如果使用這種方式,工廠將始終返回一個和相同的類型。具體的實現將被封裝在這種類型中。 – Nick
你的班級做的那個unique_ptr不是什麼? – Pumkko