-
UML 관계 종류Programming/패턴 2020. 9. 22. 13:55
UML에서 의존, 일반화, 실체화, 집합, 합성 관계를 구성하고 있다.
의존 관계
Class A (Car_A) 의 함수가 Class B (GPmp_B) 의 함수를 호출하거나 인자로 받는 등에 사용될 때, 집합 관계를 이룬다고 한다.
public class Car_A { // ... public void Person_A(GPmp_B gp) { gp.charge(); } } public class GPmp_B { // ... public void charge() { // ... } }
연관 관계
클래스들이 연결되어 있고 한 클래스 ( Person_A ) 가 다른 클래스 ( Car_B ) 에서 제공하는 기능을 사용하는 상황일 때 표시.
의존 관계와 좀 비슷한 것 같지만, Person_A는 Car_B Car; 라는 멤버변수( 멤버필드 )를 가지고 있고 사용되고 있다는 점을 보면 된다.
public class Person_A { private Car_B car; public void dolt() { car.dolt(); } } public class Car_B { public void dolt() { // ... } }
일반화 관계
흔히 상속 관계라고 많이 불리고 있으며, IS-A라고도 한다.
public class SuperClass_A { // ... } public class Class_B extends SuperClass_A { // ... }
실체화 관계
인터페이스인 ClassA를 ClassB에서 인터페이스를 실제로 구현한 관계를 나타내는 것.
public interface ClassA { public void implMethod(); } public class ClassB implements ClassA { @override public void impleMethod() { // ... } }
집단관계 ( part-whole, is-a-part-of ) : 생명주기의 일치화 여부로 구분.
집합 관계
전체 객체의 라이프타임과 부분 객체의 라이프타임은 독립적
전체 객체가 사라져도 부분 객체는 남아있음.
public class Person_A { private Addr_B addr; public Person_A(Addr addr) { this.addr = addr; } } public class Addr_B { // ... }
합성 관계
전체 객체의 라이프타임과 부분 객체의 라이프타임은 의존적.
전체 객체가 사라지면 부분 객체도 사라짐.
public class Car_A { Engine_B e = new Engine_B(); // ... } public class Engine_B() { // ... }
반응형'Programming > 패턴' 카테고리의 다른 글
객체 생성 : 팩토리 메서드 ( Factory Method ) (0) 2020.11.09 객체 생성 : 프로토타입 패턴 ( Prototype Pattern ) (0) 2020.09.26 객체 생성 : 빌더 패턴 ( Builder Pattern ) (0) 2020.09.22 객체 생성 : 추상 팩토리 패턴 ( Abstract Factory Pattern ) (0) 2020.09.04 객체 생성 : 싱글턴 패턴 ( Singleton Pattern ) (0) 2020.05.04