Questions tagged [law-of-demeter]

The tag has no usage guidance.

Filter by
Sorted by
Tagged with
28 votes
4 answers
4k views

Law of Demeter and over-wide interfaces

The Law of Demeter makes sense in some obvious cases. # better dog.walk() # worse dog.legs().front().left().move() dog.legs().back().right().move() # etc. But in other cases it seems to lead to an ...
user avatar
  • 1,045
2 votes
4 answers
457 views

Is using getter method violating the law of Demeter?

Suppose I have a Attendance class public class Attendance { private PersonInfo personInfo; public PersonInfo getPersonInfo() { return personInfo; } } And I want to check if person is ...
user avatar
35 votes
1 answer
8k views

Is this a good scenario to violate the Law of Demeter?

I have this code in some part of an application: long sum1 = new Multiples().ofAny(new long[] { 3, 5 }).until(32768).sum(); long sum2 = new Multiples().ofAll(new long[] { 3, 5 }).until(32768).sum(); ...
user avatar
0 votes
2 answers
2k views

Using Spring Boot's @ConfigurationProperties without violating Law of Demeter

My apps commonly have one or more prop holders. These holders contain config data used in the app such as: @Component @ConfigurationProperties(prefix="app.orders") @Data //lombok public class ...
user avatar
  • 285
4 votes
1 answer
322 views

What does the Law of Demeter have to do with Demeter?

Is there a story from Greek mythology about the goddess Demeter that somehow motivates the Law of Demeter? If so, I'd love to know it so I can tell it to my students when I teach this topic.
user avatar
  • 149
4 votes
6 answers
901 views

How to deal with Law of Demeter in the product - owner relationship?

I want to display the product, and the product card has a lot of information about the product and the owner. How to deal with Law of Demeter in this product - owner relationship? In controller I ...
user avatar
  • 57
7 votes
3 answers
1k views

Does this violate the Law of Demeter?

Let's say I have a class SelectableEntity<T extends Entity> which has three methods, select, deselect, isSelected and count. To take a somewhat contrived example, let's say I'm building an ...
user avatar
  • 291
3 votes
2 answers
1k views

Demeter's law vs method chaining: when to use which?

Given this code from the Symfony framework: use Symfony\Component\HttpFoundation\Request; public function indexAction(Request $request) { $request->isXmlHttpRequest(); // is it an Ajax ...
user avatar
  • 179
4 votes
1 answer
394 views

Dealing with a large interface

I'm working on a program that solves a certain type of systems of equations. The main data objects are Equation, Variable, Solution. Then I have this interface, which represents all things that I want ...
user avatar
0 votes
2 answers
161 views

Should an object keep a reference to a sibling object, or access through mutual owner's method

For context, I'm building a GTK+ application in C where a subclass of GtkApplicationWindow creates and displays a subclass of GtkToolbar and a GtkNotebook (a widget with multiple pages that can be ...
user avatar
14 votes
5 answers
3k views

According to Demeter's law, is a class allowed to return one of its members?

I have three questions concerning Demeter's law. Apart from classes which were specifically appointed to return objects - such as factory and builder classes - is it okay for a method to return an ...
user avatar
  • 1,722
2 votes
2 answers
1k views

Law of Demeter and its applicability

Let's say I'd like to perform the following command: house.getFloor(0).getWall(WEST).getDoor().getDoorknob(); To avoid a NullPointerException, I'd have to do the following if: if (house != ...
user avatar
  • 1,683