티스토리 뷰

Paradigm/OOP

[OOP] Law of demeter

Mr.SIM 2013. 10. 30. 00:03

Law of demeter는 최소 지식의 원칙이다. 여기서 말하는 지식은 "객체간의 얼마나 많은 정보를 가지고 있는 가"이다. 이런 지식을 최소한으로 가져야한다.  즉, Coupling 관계가 낮아야한다.


다음 코드는 최소 지식의 원칙에 어긋 나는 경우이다.


public class A {

	private B b;

	public A() {
		b = new B();
	}
	
	public B getB(){
		return b;
	}	
}

public class B {

	public void doSomething(){
		System.out.println("작동을 한다.");
	}
}

A, B클래스가 있다. 호출하는 클래스에서 a 객체를 가지고 b의 객체 정보를 받아온다. 하지만, 받아오는 과정을 보면 호출하는 클래스에서 정보를 너무 많이 알아야한다. A만 알면 호출할 수 있어야한다.

a.getB().doSomething();

이런 경우에는 그럼 어떻게 호출해야할까?

public void doSomething(){
		b.doSomething();
	}




처음에는 호출하는 클래스는 a.getB().doSomething() 처럼 B의 정보도 알아야했지만, a.doSomething()으로 호출하도록 했다.


'Paradigm > OOP' 카테고리의 다른 글

[객체지향] Abstract Factory Pattern  (0) 2014.08.04
[OOP] Refactoring  (0) 2013.11.06
[OOP] Dependency Inversion Principle  (0) 2013.10.29
[OOP] Interface Segregation Principle  (0) 2013.10.29
[OOP] Liskov Substitution Principle  (0) 2013.10.29
댓글
최근에 올라온 글
최근에 달린 댓글
글 보관함
Total
Today
Yesterday