[java] 멤버 패턴

멤버 패턴을 사용하는 이유

멤버 패턴을 사용하는 이유 중 하나는 개별 객체를 직접 참조하지 않고 그룹화된 객체들을 관리하기 위함입니다. 또한, 특정 작업을 수행할 때 모든 객체에 대해 동일한 동작을 수행할 수 있어 유용합니다.

멤버 패턴의 구조

멤버 패턴은 보통 Component, Leaf, Composite으로 구성됩니다.

Java에서의 멤버 패턴 예제

다음은 Java에서 멤버 패턴을 구현하는 간단한 예제 코드입니다.

public interface Component {
    void operation();
}

public class Leaf implements Component {
    @Override
    public void operation() {
        System.out.println("Leaf operation");
    }
}

import java.util.ArrayList;
import java.util.List;

public class Composite implements Component {
    private List<Component> children = new ArrayList<>();

    public void add(Component component) {
        children.add(component);
    }

    public void remove(Component component) {
        children.remove(component);
    }

    @Override
    public void operation() {
        for (Component component : children) {
            component.operation();
        }
    }
}

결론

멤버 패턴은 그룹화된 객체를 단일 객체처럼 다룰 수 있게 해주는 유용한 디자인 패턴입니다. Java와 같은 객체지향 언어에서 쉽게 구현할 수 있으며, 코드의 유연성과 확장성을 높일 수 있습니다.

자세한 내용은 Gang of Four의 디자인 패턴에 관한 참고 자료를 확인할 수 있습니다.