|
![]() |
#1 |
Участник
|
На самом деле, по-моему, очень справедливый вопрос.
Просто надо спрашивать не "чем они отличаются", а "почему их два?" |
|
![]() |
#2 |
Участник
|
У меня есть предположение по этому поводу.
Возможно наличие в среде MorphX этих двух методов у класса FormRun является, своего рода, реализацией свойства инкапсуляции (то есть предоставлением строго определенных интерфейсов доступа к объектам посредством методов классов, членами которых они являются). В правильном случае, объект класса FormDataSource должен инициализироваться методом datasource(), а объект класса FormObjectSet - методом objectSet(). То есть, по сути, использование того или иного метода для инициалиции объектов служит лишь средством повышения "читабельности" кода. А вот в зависимости от того, объект какого класса будет проинициализирован, программист в дальнейшем получит определенный интерфейс для доступа к этому объекту через соответствующие методы. То есть, из этого всего получается, что все дело в "этике" программирования.
__________________
С уважением, Александр. Последний раз редактировалось samolalex; 21.09.2010 в 12:02. |
|
![]() |
#3 |
Участник
|
На самом деле тут что-то не чисто
![]() Оказывается, если после инициализации переменных типа FormObjectSet что одним, что другим методом, посмотреть тип в дебагере, то мы увидим, что объекты типа FormObjectSet странным образом трансформируются в объекты типа FormDataSource. Т.е., грубо говоря, экземпляры класса FormObjectSet вообще не имеют смысла, т.к. их и получить то невозможно, даже при помощи new(). Поэтому, как мне кажется, ни о какой "этике" здесь речь не идет, а имеется лишний метод objectSet, который в последствии должен уйти в небытие за ненадобностью. |
|
|
|