Как мне смоделировать два моих класса, зная, что одному нужен метод другого? - PullRequest
0 голосов
/ 11 февраля 2010

альтернативный текст http://tinyurl.com/455741

У меня есть эти два класса, и классу Retrodoc нужно знать versionPath () для выполнения его метода run ($ versionId). Так что же является лучшей моделью? Должен ли я создать экземпляр Version в методе, а затем использовать метод getVersionPath ()?

1 Ответ

0 голосов
/ 02 октября 2011

Если путь к версии будет оставаться статическим в течение всего времени жизни зависимого объекта, создайте переменную-член в Retrodoc и инициализируйте ее, создав экземпляр объекта версии и вызвав метод получения в конструкторе . Тогда объект будет уничтожен, когда конструктор выйдет из области видимости, у вас есть значение, пригодное для вашего объекта, и вы делаете только один вызов функции плюс один вызов __construct и один вызов __destruct. Путь версии хранится в одном примитивном типе.

Если путь является чем-то, что изменится от одного вызова run к другому, то вы бы сделали объект версии членом класса. затем вызывайте метод получения каждый раз, когда вы запускаете функцию, но вы не создаете и не уничтожаете ее каждый раз. До сих пор только один вызов конструктора и один деструктор плюс один вызов геттера для каждого вызова.

Это отношение типа "тип имеет" С точки зрения дизайна UML, когда объект Retrodoc имеет версию. Это называется композиция. Попробуйте выбрать схему, наиболее эффективную с вызовами функций, которые требуют затрат времени (включая создание и разрушение), и объектами, которые требуют более высокую стоимость памяти, чем примитивы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...