Search

구조 패턴

구조 패턴

구조 패턴은 객체 간의 관계를 통해 더 큰 구조를 만드는 데 사용됩니다. 이러한 패턴은 서로 다른 객체 간의 결합도를 줄이고 유지보수성과 유연성을 높입니다. 구조 패턴은 크게 클래스 패턴과 객체 패턴으로 나뉩니다.

클래스 패턴

클래스 패턴은 상속을 사용하여 객체 간의 관계를 정의합니다. 이 패턴은 서로 다른 객체 간의 결합도를 줄이는 데 도움이 되지만, 상속을 사용하므로 유연성이 떨어질 수 있습니다.

어댑터 패턴

어댑터 패턴은 호환되지 않는 인터페이스를 가진 두 개의 클래스를 연결하는 데 사용됩니다. 이 패턴은 기존 클래스를 수정하지 않고도 새로운 클래스를 추가할 수 있도록 합니다.

브리지 패턴

브리지 패턴은 추상화와 구현 사이의 간격을 줄입니다. 이 패턴은 추상화와 구현을 독립적으로 변경할 수 있도록 합니다.

컴포지트 패턴

컴포지트 패턴은 객체를 트리 구조로 구성할 수 있도록 하며, 개별 객체와 복합 객체를 동일하게 처리할 수 있습니다.

어그리게이트 패턴

어그리게이트 패턴은 객체를 집합으로 묶어서 사용하는 패턴입니다. 이 패턴은 다른 객체에 대한 참조를 갖고 있으며, 이를 사용하여 객체 간의 관계를 정의합니다.

데코레이터 패턴

데코레이터 패턴은 객체의 기능을 동적으로 확장할 수 있도록 합니다. 이 패턴은 객체를 래핑하여 새로운 동작을 추가할 수 있습니다.

파사드 패턴

파사드 패턴은 복잡한 서브시스템을 간단하게 사용할 수 있도록 합니다. 이 패턴은 서브시스템의 인터페이스를 간단하게 만들어주며, 불필요한 복잡성을 제거합니다.

프록시 패턴

프록시 패턴은 객체에 대한 접근을 제어하기 위해 사용됩니다. 이 패턴은 객체에 대한 직접적인 접근을 제한하고, 대신에 프록시 객체를 통해 간접적으로 객체에 접근합니다.

결론

구조 패턴은 객체 간의 관계를 통해 코드의 유연성과 유지보수성을 높이는 데 사용됩니다. 클래스 패턴과 객체 패턴은 각각 상속과 구성을 사용하여 객체 간의 관계를 정의합니다. 이러한 패턴을 사용하면 더 큰 구조를 만들 수 있으며, 코드의 재사용성을 높일 수 있습니다.