1. 느슨한 결합(Loose Coupling)
클래스의 자료구조,메소드를 추상화할 수 있는 인터페이스 클래스를 이용하여, 클래스 간의 의존성을 최소화 한다.
public class Point{ public double x; public double y; } |
=> x,y 값이 public 이므로 사용자가 x,y 값을 입력 후 해당 클래스 세부 구현 조작 가능.
=> Point 설정 시 항상 x,y 두 값을 동시에 설정해야만 함.
아래와 같이 느슨한 결합으로 바꾸어 준다.
public interface Point{ double getX(); double getY(); void setRectangle(double x, double y); } |
2. 강한 결합(Tight Coupling)
강하게 결합된 객체는 다른 오브젝트에 대한 많은 정보를 필요로 하며 두 객체간의 인터페이스들에게 서로 높은 의존성을 가지고있다.
public class Person{ private Chicken chicken; public Person(){ this.chicken = new Chicken(); } public void Eat(){ chicken.eat(); } } public class Chicken{ public void eat(){ System.out.println("치킨먹는다"); } } |
위의 코드에서 치킨은 사람에 의존한다 또는 강하게 결합되었다 라고 할수 있다.
치킨이 없거나 로직이 변경되면 사람은 먹을수 없기 때문.
여기에서 치킨이 피자로 변경된다면 person 객체의 대부분의 코드가 피자로 변경되어야 하기 때문이다.
때문에 1.느슨한 결합을 이용하는 것이 좋다.
'학습 > 정처기' 카테고리의 다른 글
[실기] 3일차 연습문제 (0) | 2020.06.11 |
---|---|
[실기] 2일차 연습문제 (0) | 2020.06.10 |
[실기]1일차 연습문제 (0) | 2020.06.09 |
응용 SQL 작성 (0) | 2020.05.10 |
절차형 SQL - 트리거 (0) | 2020.05.09 |