Cześć,
Ostatnio wsiąknąłem do końca w poznawanie praktyk programistycznych. Z wieloma z nimi nie do końca się zgadzam i nie uważam ich za wygodne. Jedną z takich praktyk jest "prawo Demeter"
Krótki opis:
Nie uważam by było to wygodne w stosowaniu. Stosowanie tej praktyki powoduje, że hierarchia klas w postaci agregacji nie ma sensu, ponieważ wg tej praktyki kaskadowe odwoływanie się jest zabronione. Można to obejść, ale kosztem nadmiarowości metod, przez co interfejs staje się nieczytelny.
Możemy "rozmawiać tylko z najbliższymi przyjaciółmi", więc odwoływanie się w tym stylu:
this->_ini_file_shared_ptr->get_section(temp_name_section_shared_ptr_helper)->get_key(temp_name_key_shared_ptr_helper)-> set_key_value(temp_change_value_key_shared_ptr_helper);
odpada z wiadomych przyczyn. Zasada Demeter jest znana też jako zasada jednej kropki (w moim przypadku, wskaźnik polimorficzny), no bo występuje tylko jedno odwołanie.
Z jednej strony ma to swoje plusy, ale czy stosowanie się do tej zasady ma wymierne korzyści? Przecież to redundancja sprzeczna z metodyką LEAN.
Chciałem się Was zapytać czy warto to stosować?
Myślę, że ta zasada nie stoi na równi z takimi zasadami jak SOLID czy DRY, (nigdy, de facto, nie słyszałem o tym prawie Demeter, więc nwm czy to popularna zasada).