Скажем вам класс ZipFile и класс Content.
В ZipFile есть метод load () для чтения содержимого всех файлов в zip-архиве и помещения его в объект Content.
Каков наиболее подходящий дизайн ООП?
1) ZipFile.load () создаст объект Content
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 объект Content для заполнения
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();
В принципе, лучше ли отделять объекты (слабая связь)?
Как процедурный программист старой школы, я не могу перестать подвергать сомнению несколько способов разработки ООП. Я теряю много времени на "как лучше всего ООП это . Любой совет, чтобы обдумать это? Книга? Веб-сайт?
Спасибо за вашу помощь