이제 햄 생산 공장을 시뮬레이션하는 간단한 사용 사례를 제시합니다. 공장에서는 여러 유형의 햄을 생산할 수 있습니다. 공장 인스턴스를 생성한 후 어떤 종류의 햄을 생산할지 지정하기만 하면 됩니다.
패키지 테스트;
interface Ham { //팩토리 모드 구현을 지원하는 인터페이스 정의
void show();//Ham에서 생산되는 다양한 제품 Factory Ham은 show()
}
public class FatoryModule {//다양한 유형의 Ham 제품에 사용되는 Factory 클래스
public Ham getHam(String HamType) throw Exception{// Factory 클래스 HAM을 생성하기 위한 객체의 움직임
if (Hamtype.equals ("HAMA") {
Return New Hama ();
}
Else if (Hamtype.equals ("HAMB" )) {
return new HamB();
공장에서 생산 지시를 받은 경우; 일부 HAM 명령어가 현재 지원되지 않는 경우, 비정상적인 오류가 발생합니다.
}
Public Static Void Main (String [] ARGS) { //테스트 코드
FatoryModule fatorymodule = new FatoryModule();
try {
Ham myHam = fatorymodule.getHam("HamB");//다양한 형태의 Ham을 쉽게 생성할 수 있으며, 프로그램 구조와 코드 수정을 최소한으로
} catch(예외 ex) {
ex.printStackTrace();//Exceptions를 추가로 처리해야 함
}
}
}
class HamA가 Ham을 구현함 { //HamA가 공장에서 생산하는 제품
public void show() {
System.out.println("You got a HamA.") ;
}
class HamB가 Ham을 구현합니다. { // 공장 HamB
public void show() {
System.out.println("HamB를 얻었습니다.");
}
class HamC는 Ham을 구현합니다. { // 공장에서 생산되는 세 번째 제품, HamC
public void show() {
System.out.println("You got a HamC.");
}
시연을 통해 프로그램을 통해 다음과 같은 결론을 얻었습니다.
팩토리 패턴이 적용되었으므로 팩토리 객체가 나에게 어떤 종류의 Ham을 생성하는지 알려 주기만 하면 됩니다(즉, getHam() 메서드의 매개 변수 ) 그러면 HamX hamX=new HamX();를 작성하지 않고도 이 유형의 Ham을 얻을 수 있습니다. 필요한 Ham 객체가 수십 개 있는 경우 프로그램의 다른 위치에 생성된 경우 팩토리 패턴 코드를 사용하면 간단해 보일 것입니다. 다른 Ham이 필요한 모든 장소는 getHam()의 매개변수만 다릅니다. 그렇지 않으면 프로그램을 확장하고 유지 관리해야 할 때 수십 개의 새로운 문이 두통을 유발할 것입니다. 그리고 새로운 Ham 유형을 추가해야 하는 경우 팩토리 클래스에만 추가하면 됩니다.
JAVA 팩토리 패턴의 더 간단한 예제를 보려면 PHP 중국어 웹사이트에서 관련 기사를 주목하세요!