powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Закон деметра и агрегация
5 сообщений из 5, страница 1 из 1
Закон деметра и агрегация
    #37851332
ferz721
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
агрегация нарушает закон деметры?
...
Рейтинг: 0 / 0
Закон деметра и агрегация
    #37851379
ferz721
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ferz721агрегация нарушает закон деметры?
мне кажется нарушает, или все таки нет. и как тогда проектировать по, без агрегации? зачем тогда в юмл есть стелачка агрегация.
или недоконца понял что-то из двух, или оба?
...
Рейтинг: 0 / 0
Закон деметра и агрегация
    #37851399
Фотография @k@DElpher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что такое закон Деметры?
Связность и увязка
Джереми МиллерЗакон Деметры – это эмпирическое правило разработки. Краткое определение закона таково: общайтесь только с ближайшими друзьями.
Ну и там пример, как нельзя и как надо. Если учитывать то, что там написано, то не нарушает. Просто не следует через агрегацию вглубь идти, нужно иметь методы на доступ к данным.
...
Рейтинг: 0 / 0
Закон деметра и агрегация
    #37851592
ferz721
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
@k@DElpher,
я шарп плохо понимаю, указателей там нет.
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
class ZlobniyByratino 
{
public $variable;
function __construct(Otvertka $overtka)
   {
        $variable = $otvertka;
   }
}



Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
class ZlobniyByratino 
{
Otvertka * xaxaxa;
 ZlobniyByratino(Otvertka * otvertka)
{
    this->xaxaxa = otvertka;
}
};



агрегация. правильно?

Код: php
1.
$kinder = new ZlobniyByratino(otvertka);


Код: plaintext
1.
ZlobniyByratino  kinder = new ZlobniyByratino(otvertka);


там сказано "говори а не спрашивай", использование параметров переданых в функцию можно использовать согластно закону деметра.
Код: php
1.
$kinder->krutit($ovtertka);


Код: plaintext
1.
kinder.krutit(&otvertka);  //передается адрес указателя 



а так нет! что есть использование агрегации.
Код: php
1.
$kinder->variable->methodotvertka();



Код: plaintext
1.
kinder.variable->methodotvertka(); //я тут чуть-чуть забыл синтаксис



и как же тут быть, я уже придумал возможно ответ. хочется услышать, практики других
...
Рейтинг: 0 / 0
Закон деметра и агрегация
    #37851602
ferz721
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
возможно так правильно использовать
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
class ZlobniyBuratino
{
public $variable;

function __construct (Otvertka $otvertka)
{
$variable = $otvertka;
}
   function method()
{
 $variable->methodotvertkin();
}
}



Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
class ZlobniyBuratino
{
public Otvertka * variable;

function ZlobniyBuration (Otvertka  * otvertka)
{
variable = otvertka;
}
   method()
{
 variable->methodotvertkin();
}
}


Здесь можно закрыть глаза на знание внутреннего устройства класса отвертка т.к он ближайший друг?
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Закон деметра и агрегация
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]