이 기사는 주로 PHP의 간단한 팩토리 모드에 대한 자세한 설명을 공유하며 좋은 참고 가치가 있으며 모든 사람에게 도움이 되기를 바랍니다. 편집자를 따라가서 살펴보겠습니다.
1. 단순 팩토리의 정의
생성된 인스턴스의 유형은 인터페이스, 추상 클래스 또는 콘크리트일 수 있습니다. 수업.
2. 단순 팩토리의 구조 및 설명
단순 팩토리의 구조는 다음과 같습니다.
Api: 고객이 요구하는 기능적 인터페이스 정의
Impl: Api를 구체적으로 구현하는 구현 클래스에는 여러 가지가 있을 수 있습니다.
Factory: Factory, 적절한 구현 클래스를 선택하여 Api 인터페이스 객체
Client: Client, Factory를 통해 Api 인터페이스 객체를 얻은 다음 Api 인터페이스용 프로그램
Api 인터페이스:
/** * 接口的定义,该接口可以通过简单工厂来创建 * * @author Administrator * */ public interface Api { /** * 具体功能方法的定义 * * @param s * 需要的参数 */ public void operation(String s); }
ImplA:
/** * 接口的具体实现对象A * * @author Administrator * */ public class ImplA implements Api { @Override public void operation(String s) { // 实现的功能 System.out.println("ImplA s==" + s); } }
ImplB:
/** * 接口的具体实现对象B * * @author Administrator * */ public class ImplB implements Api { @Override public void operation(String s) { // 实现的功能 System.out.println("ImplB s==" + s); } }
Factory:
/** * 工厂类,用来创建Api对象 * * @author Administrator * */ public class Factory { /** * 具体创建Api对象的方法 * * @param condition * 从外部传入的选择条件 * @return */ public static Api createApi(int condition) { // 应该根据某些条件去选择究竟创建哪一个具体的实现对象 // 这些条件可以从外部传入,也可以从其他途径获取 // 如果只有一个实现,可以省略条件 Api api = null; if (condition == 1) { api = new ImplA(); } else if (condition == 2) { api = new ImplB(); } return api; } }
테스트 클래스 클라이언트:
public class Client { public static void main(String[] args) { // 通过简单工厂来获取接口对象 Api api = Factory.createApi(1); api.operation("正在使用简单工厂模式"); } }
간단한 팩토리 호출 시퀀스 다이어그램:
간단한 팩토리에 대한 명명 제안:
클래스 명명 제안은 "모듈 이름+Factory"입니다. 예를 들어 사용자 모듈의 팩토리는 UserFactory
메서드 이름은 일반적으로 "get+인터페이스 이름" 또는 "create+인터페이스 이름"입니다. 예를 들어 사용자 인터페이스 이름이 UserEbi인 경우 메서드 이름은 일반적으로 getUserEbi 또는 createUserEbi입니다.
간단한 팩토리 메소드의 주요 내부 기능은 "적절한 구현 클래스 선택"입니다. 선택 조건 또는 매개변수의 소스는 일반적으로 다음과 같이 집중됩니다.
는 클라이언트에서 오고 클라이언트에 의해 결정 들어오는 매개변수
는 구성 파일에서 가져오고, 판단에 사용되는 값은 구성 파일
에서 가져옵니다. 특정 런타임 값을 가져오는 것과 같이 프로그램 런타임 중 특정 값에서 가져옵니다. 캐시에서
点 단순 팩토리의 장점:
2. 디커플링
간단한 팩토리를 통해 클라이언트와 특정 구현 클래스를 디커플링합니다.
간단한 팩토리의 단점: 1. 클라이언트의 복잡성이 증가할 수 있음
2. 서브 팩토리 확장이 불편함
간단한 팩토리의 본질: 구현을 선택하세요
간단한 팩토리를 선택하는 경우:
위 내용은 PHP의 간단한 팩토리 패턴에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!