abstract factory 패턴 예제

  • 0

abstract factory 패턴 예제

이 문서에서는 추상 공장 디자인 패턴에 대해 설명합니다. 우선 추상 팩터리 인터페이스 또는 추상 클래스를 만들어야 합니다. 추상 팩터리 패턴에서는 if-else 블록을 제거하고 각 하위 클래스에 대한 팩터리 클래스를 갖습니다. 그런 다음 입력 팩터리 클래스에 따라 하위 클래스를 반환하는 추상 팩터리 클래스입니다. 처음에는 혼란스러워 보이지만 구현을 보고 나면 Factory와 Abstract Factory 패턴간의 사소한 차이를 쉽게 파악하고 이해할 수 있습니다. 사용 중추 공장의 예로는 UI 도구 키트가 있습니다. 윈도우, 맥, 리눅스에서, 윈도우, 버튼 및 텍스트 필드와 같은 UI 합성은 모두 SWT와 같은 위젯 API에 제공됩니다. 그러나 이러한 위젯의 구현은 플랫폼에 따라 다릅니다. 추상 팩터리 구현을 통해 플랫폼 독립 클라이언트를 작성할 수 있습니다. 이 패턴을 사용하면 런타임시에도 해당 구현을 사용하는 코드를 변경하지 않고 구체적인 구현을 교환할 수 있습니다. 그러나 유사한 디자인 패턴과 마찬가지로 이 패턴을 사용하면 코드 작성시 불필요한 복잡성과 추가 작업이 발생할 수 있습니다.

또한 분리 및 추상화가 높을수록 디버깅 및 유지 관리가 더 어려운 시스템이 발생할 수 있습니다. 일반 및 둥근 모양 개체에 대한 팩터리를 가져옵니다. 추상 팩터리는 제품군의 각 클래스에서 개체를 만들기 위한 인터페이스를 제공합니다. 코드가 이 인터페이스를 통해 개체를 만드는 한 앱에서 이미 만든 제품과 일치하지 않는 제품의 잘못된 변형을 만드는 것에 대해 걱정할 필요가 없습니다. 자바의 공장 디자인 패턴에 익숙하다면 단일 Factory 클래스가 있음을 알 수 있습니다. 이 팩터리 클래스는 제공된 입력에 따라 다른 하위 클래스를 반환하며 이를 달성하기 위해 if-else 또는 switch 문을 사용합니다. 추상 팩터리는 제품당 팩터리 메서드를 정의합니다. 각 공장 방법은 새로운 작업자와 구체적인 플랫폼별 제품 클래스를 캡슐화합니다. 그런 다음 각 „플랫폼”은 팩터리 파생 클래스로 모델링됩니다. 공장 (이전 제조 공장) 또는 제조 공장은 노동자가 제조하는 산업 건물입니다제품 또는 다른 한 제품을 처리 기계를 감독. createComputer() 메서드는 슈퍼 클래스 컴퓨터의 인스턴스를 반환 합니다. 이제 Factory 클래스는 이 인터페이스를 구현하고 해당 하위 클래스를 반환합니다.

따라서 앱에 UI 요소의 새 변형을 추가할 때마다 클라이언트 코드를 수정할 필요가 없습니다. 이러한 요소를 생성하는 새 팩터리 클래스를 만들고 앱의 초기화 코드를 약간 수정하여 적절한 경우 해당 클래스를 선택하기만 하면 됩니다. 안녕하세요 Pankaj, 나는 완벽하게 추상 공장 디자인 패턴을 이해할 수 없습니다. 당신은 저를 도와주세요 수 있습니까?? 여기서 FactoryProvider는 클라이언트에서 제공하는 이름(이 경우 application.java)을 기준으로 팩터리를 제공합니다. 이 팩터리 오브젝트를 사용하면 해당 기하학적 모양을 얻게 되며, 이 모양은 모양을 그리는 데 사용할 것입니다. 문자열 컴퓨터 유형 = getRequestFromClient(); 컴퓨터 원격컴퓨터 = null; 이제 이것은 실제 경우 다른 온다. 경우 (computerType.equals („PC”){{ 원격 컴퓨터 = ComputerFactory.getComputer („2 GB”,”500 GB”,”2.4 GHz의”)); } else if (computerType.equals („서버”)) { 원격 컴퓨터 = ComputerFactory.getComputer („16 GB”,”1 TB”,”2.9 GHz의”)) } //그리고이 코드 블록은 공장에서 원격 컴퓨터 개체를 원하는 모든 곳에 존재할 것입니다 기억하십시오.