Eh,
Ben bir sorun var (Tamam, gerçek bir sorun, ama ben yeni bir şey denemek istiyorum) nesneler oluşturma. Aslında ben OrderItems listesini içeren bazı emirler var.
Bu OrderItems kullanılan ve böylece bütün uygulama yayıldı, ve ben bunları oluşturmak için bir yol ihtiyacı vardır. Asıl sorun, ben çok farklı şekillerde bu nesneleri oluşturmak mümkün olmak istiyorum, bir.
Actually I do this in the class constructor and check if the argument which is given. (I'm using php, so there is no overloading support from the language as you surely know :))
Basit ve hızlı Örneği
class foo {
protected $_data=null;
public function __contruct($bar){
if (is_array($bar)){
$this->_data=$bar;
}
else {
$dataFromDb=getDataFromDatabase
$this->_data=$dataFromDb;
}
}
}
Anyway, if I want to create my object by giving another type of parameter, lets say a xml-document encapsulated in a string I need to put all this stuff in my constructor. If the process for creating an object is more complicated, I eventually need to create a seperate method for each type, I want to initiate. But this method is only called when this special type is created. (I think you got the problem :))
Ben somut bir nesne oluşturmak için yapıcı daha fazla parametreye ihtiyaç varsa başka bir sorun akla geliyor, ben contructor değişti neden, benim kodunu değiştirmek var. (Tamam, ben ona daha fazla ve daha fazla parametre vermek ve varsayılan değerler ile çalışmak, ama bu gerçekten istediğim değildir yapabilirsiniz).
Yani benim soru somut bir nesnenin benim oluşturulmasını çözmek için bu sorunu uyacağı modelidir. Ben somut nesne oluşturmak istediğiniz her yol için bir fabrika oluşturma hakkında düşündüm. Bu tür bir sorunu çözmek için ortak bir çözüm olup olmadığını Ama emin değilim.