Computer Science/Design Pattern

퍼사드 패턴(Facade Pattern)퍼사드(Facade)는 건물의 정면을 의미해요. 건물 내부의 복잡함을 숨기고 건물의 정면만을 나타나게 합니다. 유저들은 건물의 정면에 있는 출입구를 통해 내부를 이용하게 됩니다. 즉, 건물의 정면이 마치 인터페이스가 되는 것이죠.🤔 시스템의 복잡한 부분을 감추고 사용자에게 단순한 인터페이스를 제공하는 개념이에요. 건물의 정면이 마치 출입구가 되어 건물 내부로 들어가는 것처럼, 사용자가 시스템의 내부 동작을 몰라도 간단한 인터페이스를 통해 시스템을 사용할 수 있게 해 줍니다. 온라인 쇼핑몰을 예를 들어 다음 퍼사드 패턴에 대해서 설명해 볼게요 😊 퍼사드 패턴 적용 예시(Facade Pattern Example)사용자는 제품을 검색하고 구매할 수 있지만, 그 내부에서는..
여러 방식으로 기능이 작동되는 메서드에서, 또 다른 기능을 추가해야 할 경우 어떻게 해야 할까요? 🤔 코드 형태에 따라 구현 방식이 천지 차이지만, if-else로 분기를 태워서 한 메서드에서 서로 다른 기능을 제공하는 경우가 많이 존재할 겁니다. 간단한 예시로 연산 종류에 따른 다른 동작을 수행시키는 계산기 코드를 다음과 같이 작성해 보았어요. public static int calculate(String operation, int operand1, int operand2) { int result; if (operation.equals("add")) { result = operand1 + operand2; } else if (operation.equals("subtract")) { result = op..
데코레이터 패턴(Decorator Pattern)은 객체의 기능을 확장하거나 수정할 때 사용되는 디자인 패턴이에요. 유연하게 확장을 할 수 있기에, 정적 또는 동적으로 객체에 새로운 기능을 부여할 수 있어요. 일상생활에서는 선물 포장이 떠오르는데, 선물을 준비할 때 종이나 리본, 스티커 등을 사용해서 선물을 포장합니다. 이렇게 포장을 추가하는 것은 기존 선물을 변경하지 않고도 새로운 요소를 덧붙여 선물을 만드는 것과 유사해요. 데코레이터 패턴도 이와 비슷하게 기존 객체를 그대로 유지하면서 새로운 기능을 추가하거나 변경함으로써 객체를 더욱 강화시킵니다. 이렇게 하면 기본 객체는 변함없이 유지되면서도 새로운 기능을 더해주어 객체의 활용도를 높일 수 있어요. 데코레이터 패턴 구조(Decorator Patter..
복합체 패턴(Composite Pattern)은 전체 - 부분 관계를 가진 객체들을 트리 구조로 구성하여 한 개체로 다루는 방법을 제공합니다. 이 패턴은 개별 객체와 복합 객체를 동일하게 취급하여 클라이언트가 단일 객체와 복합 객체를 구별하지 않고 사용할 수 있도록 합니다. 이 패턴은 특히 계층적 구조를 가진 객체를 다루거나, 여러 객체를 하나의 객체로 처리해야 하는 상황에 유용하게 활용됩니다. 복합체 디자인 패턴 구조 Component: 단일 객체(Leaf)와 복합 객체(Composite)가 구현하는 공통 인터페이스입니다. 이를 통해 클라이언트는 복합 객체와 단일 객체를 동일한 방식으로 다룹니다. interface component { void execute(); } Composite: 복합 객체로서,..
추상 팩토리 디자인 패턴(Abstract Factory Design Pattern)은 객체 생성에 관련된 일련의 인터페이스를 제공하여, 관련 객체들의 생성을 캡슐화하고 클라이언트 코드가 구체적인 클래스의 인스턴스를 직접 생성하는 것을 피하도록 하는 디자인 패턴 중 하나입니다. 이 패턴은 주로 "팩토리"라 불리는 인터페이스를 통해 다양한 종류의 관련 제품을 생성하는 데 사용됩니다. 각각의 팩토리는 특정 제품군에 대해 추상화된 인터페이스를 제공하며, 클라이언트 코드는 이러한 인터페이스를 통해 제품을 생성합니다. 이는 객체 생성 로직을 클라이언트 코드로부터 분리함으로써 시스템의 유연성을 향상하고, 객체 간의 결합도를 낮추어 변경과 확장에 용이하게 만듭니다. 추상 팩토리 패턴 구조(Abstract Factory..
행복한쿼콰
'Computer Science/Design Pattern' 카테고리의 글 목록