문제점현실의 객체는 순환 참조 관계를 가질 수 있다. 그러나 이를 코드로 구현할 때 문제가 발생한다. 그래서 클래스 설계를 할 때 현실의 순환 참조 관계에 있는 클래스들을 프로그램에서는 순환 참조하지 않도록 설계해야 한다.예를 들어, RPG 게임의 캐릭터와 몬스터는 서로 공격하고 데미지를 주고 받을 수 있기 때문에 순환 참조 관계를 갖는 것처럼 보인다. 그러나 이를 구현할 때는 Battle이 Chracater와 Monster에 의존하게 하여 순환 참조를 피할 수 있다. 이것이 뒤에서 설명할 중재자 패턴이기도 하다.생성할 때의 문제: 서로 의존성을 주입받아야 하는 관계에 놓여 있기 때문에 어느 클래스도 생성할 수 없다.A를 생성하려면 B 인스턴스가 필요하고, B를 생성하려면 A 인스턴스가 필요한 관계이니 ..
Computer Science/Object Oriented Programming
요약그렇다.getter도 메소드이기 때문이다응용하면 getter 메소드는 유지하면서 구현 클래스에서 멤버 값을 그대로 보내는 대신, 기존의 멤버로 계산된 값을 리턴하게 구현할 수 있다.사용 사례Java List의 `.size()`주의점 (의견)그래도 인터페이스는 공유해야할 행동을 정의하는 것이 더 좋기 때문에 interface에 멤버 값을 반환하는 getter를 남용하는 것은 지양하는 게 좋을 것 같다. 정말 그 기능을 구현하는 클래스가 공통적으로 특정 값을 반환할 필요가 있을 때만 선언하는 것이 좋을 것 같다. callee가 호출할 수 있도록.사실 찾아본 목적은 DTO에서 특정 필드를 재사용하기 위해서였다. 이 경우, Spring framework은 사실 getter와 setter라는 public 메..
정의객체 지향 프로그래밍에서 Factory는 다른 object를 생성하는 object이다.factory method: new Class object를 반환하는 메소드예시// ShapeFactory 클래스class ShapeFactory { // 도형을 생성하는 Factory Method public Shape createShape(String type) { if (type.equalsIgnoreCase("circle")) { return new Circle(); } else if (type.equalsIgnoreCase("rectangle")) { return new Rectangle(); } return..