Описание тега law-of-demeter
Закон Деметры (LoD) или принцип наименьшего знания - это руководство по проектированию для разработки программного обеспечения, особенно объектно-ориентированных программ. В общем виде LoD представляет собой частный случай слабой связи.
1
ответ
Закон Деметры очень запутанный, потому что похоже, что я никогда не мог написать методы, которые возвращают объекты
Такое ощущение, что я зашел в тупик. Если я правильно понял, тогда, если я следую Закону Деметры, я никогда не смогу создать метод, который возвращает объект, а затем клиентский код делает вызовы к нему. Я просто думаю о фабричном шаблоне, который в…
19 фев '11 в 09:54
1
ответ
Как мне применить закон Деметры к этому?
У меня есть заведомо некрасивый запрос, чтобы найти определенную роль, связанную с текущей ролью. Эта строка дает правильный результат: @person_event_role.event_role.event.event_roles. joins(:mission_role).where(:mission_roles => {:title => 'B…
21 янв '12 в 02:14
5
ответов
Как изменить код так, чтобы он соответствовал закону Деметры
public class BigPerformance { public decimal Value { get; set; } } public class Performance { public BigPerformance BigPerf { get; set; } } public class Category { public Performance Perf { get; set; } } Если я позвоню: Category cat = new Category()…
19 апр '10 в 11:23
2
ответа
Закон Деметры путаница с простыми классами
Я работаю над проектом вычислительной геометрии. У меня есть классы, представляющие геометрические объекты: Point, LineSegment и class, который выполняет вычисления для этих объектов: Geometry. Я запутался с Законом Деметры иMethodWithPointAndLineSe…
21 мар '16 в 15:59
1
ответ
Нарушение в Голанге нарушает закон Деметры?
Это то, что Эффективный ГО должен был сказать о встраивании в Голанг Когда мы встраиваем тип, методы этого типа становятся методами внешнего типа, но когда они вызываются, получатель метода является внутренним типом, а не внешним У меня был фрагмент…
20 окт '15 в 09:10
1
ответ
Почему лучше обернуть (и несколько) код ради закона Деметры?
class Point { private $x, $y; public __construction ($x, $y) { $this->x = $x; $this->y = $y; } public function getX() { return $this->x; } public function getY() { return $this->y; } } сначала я бы написал это: class Item { private $poin…
29 сен '16 в 09:13
2
ответа
Закон Деметры IntelliJ Идеи. Ложный позитив или нет?
Предположим, следующий класс interface Thing { void doSomething(); } public class Test { public void doWork() { //Do smart things here ... doSomethingToThing(index); // calls to doSomethingToThing might happen in various places across the class. } p…
23 окт '13 в 18:25
2
ответа
Как создать классовую зависимость, пытаясь избежать закона Деметры
Хорошо, я искал и не смог найти подходящего решения для своей проблемы, я переделываю часть нашей системы торговых точек. Предположим, у нас есть следующие классы: TWorkShift = class Date: TDateTime; fTotalSold: Currency; fSales: TList<TSale>;…
26 апр '12 в 23:23
2
ответа
Сохранение закона Деметры с ArrayLists
Если у меня есть ArrayList объектов, то в любой момент, когда мне нужно вызвать любой метод члена ArrayList, мне нужно сделать это следующим образом: list.get(i).doSomething(); Это выглядит подозрительно как нарушение закона Деметры. Я не вижу никак…
29 июл '16 в 13:29
1
ответ
Прямой компонентный объект
Я не понимаю, что означает прямая составляющая объекта в контексте статьи закона Деметры. Как я вижу, термин был взят из статьи Дэвида Блока. Итак, что такое термин и где я могу получить примеры из жизни и больше информации о нем?
10 янв '18 в 09:33
0
ответов
Не повредит ли это закону Деметры при использовании услуг / фабрик в модели?
class ForumThread { /** * @return bool */ public function findBadLanguage ($inWhat) { return (bool)rand(0,1); } /** * @return */ public function add ($threadName) { if (!$this->findBadLanguage ($threadName)) { INSERT INTO } } } class ForumPost { …
05 сен '15 в 10:25
1
ответ
IntelliJ Refactor для использования LoD
Скажем, у меня есть класс Foo class Foo { protected String x = "x"; public String getX() { return x; } } У меня есть программа, которая использует Foo и нарушает LoD class Bar { protected Foo foo; public Bar() { this.foo = new Foo(); } public Foo ge…
02 июл '15 в 18:20
3
ответа
Закон Деметры также учитывает стандартные классы?
Предполагая следующий код: requiredIssue.get().isDone() где requiredIssue не является обязательным, и было проверено, что requiredIssue.isPresent(), Этот код нарушает закон Деметры? Технически, сейчас существует тесная связь между моим классом и фак…
01 ноя '17 в 16:36
0
ответов
Предупреждение PMD "Потенциальное нарушение закона Деметры: объект не создан локально", даже при вызове методов для локальных объектов.
Что я понял о законе Деметры: Ваш метод может вызывать другие методы в своем классе напрямую Ваш метод может вызывать методы непосредственно в своих полях (но не в полях полей) Когда ваш метод принимает параметры, он может напрямую вызывать методы д…
08 янв '15 в 06:26
5
ответов
System.out.println нарушает закон Деметры?
Есть ли System.out.println нарушать закон Деметры? Если нет, то почему?
01 янв '11 в 21:16
3
ответа
Это также нарушает закон Деметры? Или это было бы излишним, чтобы исказить это?
Очень простой момент: class Point { private $x, $y; public function __constructor($x, $y) { $this->x = $x; $this->y = $y; } public function getX() { return $this->x; } public function getY() { return $this->y; } } и круг class Circle { p…
07 окт '17 в 16:09
1
ответ
Как применить закон Деметры в рельсах для петли
У меня есть приложение rails, в котором есть модель Users с одним User_profile. Когда я хочу показать нескольких пользователей на странице, я использую цикл рельсов, например: <% @users.each do |user| %> <%= user.user_profile.city %> <…
08 дек '15 в 15:12
2
ответа
Закон Деметры - проблема реального мира
Я пытаюсь лучше понять Закон Деметры в реальном мире (иначе как мое заявление), но у меня есть некоторые заблуждения по поводу причин и преимуществ, которые я получаю при уходе с цепи обязанностей. У меня есть пример, где я рассматриваю использовани…
12 дек '16 в 09:45
1
ответ
Где должен быть мой код конструкции объекта при соблюдении закона Деметры?
Я наблюдал за чистыми разговорами Google с Миско Хевери. В этих беседах говорится: запросите зависимости в конструкторе, чтобы другие программисты могли заранее увидеть, что именно нужно, для создания экземпляра данного объекта ( закон деметры). Это…
29 май '11 в 09:27
1
ответ
Закон о нарушении закона Деметры?
Кто-нибудь знает инструмент, который я мог бы использовать с приложением C#, чтобы найти возможные нарушения закона Деметры? Я знаю, что это даст много ложных срабатываний, но я думаю, что это все еще может быть полезно. Особенно в начале процесса п…
11 авг '10 в 16:07