0
說你一個類ZipFile和一個類的內容。
ZipFile有一個load()方法用於讀取zip存檔中所有文件的內容並將其放入Content對象中。
什麼是最合適的面向對象設計?對象在不使用工廠設計時生成另一個對象是否乾淨?
1)ZipFile.load()將創建一個內容對象
class ZipFile
{
public function load()
{
// Load all files in zip
// ...
Content content = new Content();
content->set(data);
return(content);
}
}
ZipFile zf = new ZipFile();
Content ct = zf->load();
ct->print();
b)給予的ZipFile構造一個內容對象以填充
class ZipFile
{
private Content content;
public function ZipFile(content) // constructor
{
this->content = content;
}
public function load()
{
// Load all files in zip
// ...
this->content->set(data);
}
}
Content ct = new Content();
ZipFile zf = new ZipFile(ct);
zf->load();
ct->print();
基本上,是更好分離對象(鬆耦合)? 作爲一個老派程序員,我不能停止質疑面向對象設計的幾種方法。我對「什麼是最好的方式來OOP這個。任何意見,認爲它通過?書?網站失去了很多的時間?
感謝您的幫助
你爲什麼不把'Content'對象賦給'load'函數而不是構造函數?那會更像第一個例子。 – lijie 2010-12-17 18:17:51
內容可能被視爲ZipFile的一部分,因爲每個ZipFile都有一個內容,所以我把它給了構造函數。但我的問題更多的是關於每種解決方案的優點和缺點。 – Antoine 2010-12-17 18:23:27