[094] 공장 모델
간단한 공장
단순 공장은 다른 공장을 통해 실례화 대상이 공통된 기류를 가진 한 조의 대상을 가지기 때문에 구체적인 종류의 유명을 전혀 알 필요가 없이 직접 실례화할 수 있다.
class product{
}
class ConcreteProductA extends product{
}
class ConcreteProductB extends product{
}
class Factory
{
createConcreteProduct(String productType);
{
if (productType == A)
{
return new ConcreteProductA();
}
if (productType == B)
{
return new ConcreteProductB();
}
}
}
공장 방법 모델
간단한 공장 예에서 설명하자면 우리는 Concrete ProductA를 만들고 Concrete ProductB를 만드는 실례를 구체적인 공장에 두었다.나사는 나사 공장에, 타이어는 타이어 공장에.
abstract class abstractFactory{
createContreteProduct();
};
class AFactory extends abstractFactory {};
class BFactory extends abstractFactory {};
우리는 다음과 같은 장면을 상상한다.
간단한 프로젝트에서 제품C를 만들어야 한다면 팩토리 종류를 수정해야 하지만 공사 방법이라면 Cfactory를 추가하면'개방폐합'원칙에 부합된다.공장 방법 모델에 대한 코드는 다음과 같다.
class CFactory extends abstractFactory {}; // CFactory
간단한 공장에 대한 구체적인 코드는 다음과 같다. class Factory{ createConcreteProduct(String productType); { if (productType == A) ... if (productType == C) { return new ConcreteProductC(); } } }
공장 방법의 실제에서의 응용
pass플랫폼 메타데이터 접근층에서 접근하는 데이터는 mysql의,postgres의,rest가 접근하는 등 다양하다.시스템에서 dispatcher를 통해 다음과 같은 다양한 유형의 데이터 처리를 배포합니다.
ObjectDataDispatcher implement IObjectDataService{
create(IObjectData objectData,String type)
{
IObjectDataService dataService= IObjectDataServiceFactory.getInstance(type); //
// type rest, dataService AbstractRestDataService
dataService.save(objectData)
}
}
원본 코드를 읽을 때 이 공장 모델을 정리하면 코드 작성자의 배후 의도를 생각할 수 있다. 예를 들어 여기는 공장 방법을 통해 각각rest/postgres의 서로 다른 데이터 서비스를 만들고 서로 다른 데이터에 접근하는 목적을 달성하는 것이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.