Java 공장 모드, 추상적인 공장 모드를 쉽게 파악

4958 단어 java공장 모드
대상을 대상으로 프로그래밍하는 프로그램 설계에서 우리가 가장 흔히 볼 수 있는 조작은 new 대상이다. 그러나 새로운 대상을 만드는 과정에서 문제가 있을 수 있다. 예를 들어 우리는 새로운 대상을 만드는 실현 세부 사항을 주의하고 필요한 매개 변수를 초기화해야 한다.이렇게 하면 우리는 프로그램 논리의 실현이 아니라 대상의 창설에 더 많은 신경을 쓰게 되고 우리의 프로그램 개발 효율을 심각하게 지연시킬 것이다.공장 모델과 추상적인 공장 모델의 출현은 이 문제를 완벽하게 해결했고 우리는 대상의 창설에 더 이상 관심을 가지지 않고 업무의 실현에 중심을 두었다.
특징:
1. 프로그래머는 직접 공장 방법을 통해 대상을 만들고 창설 대상의 세부 사항에 더 이상 관심을 갖지 않는다.
2. 숨겨진 대상의 실현 세부 사항도 프로그램의 안전성에 유리하다.
3. 프로그램의 결합도를 낮춘다.
엔터프라이즈급 개발 및 공통 프레임워크에서의 응용:
Hibernate의 세션팩토리 등.
공장 모델 분류:
간단한 공장 모델, 프로그램 개발에서 가장 자주 사용하는 형식, 구체적인 코드는 다음과 같다.

public class Demo {

 /**
 * demo ,   
 */
 public static void main(String[] args) {
 Car car = CarFactory.createCar("dz");
 car.run();
 Car car2 = CarFactory.createCar("at");
 car2.run();
 }
}
interface Car{
 public void run();
}

class Dz implements Car{
 public void run() {
 System.out.println(" "); 
 }
}

class At implements Car{
 public void run() {
 System.out.println(" ");
 }
}

class CarFactory{
 public static Car createCar(String type){
 if("dz".equals(type)){
  System.out.println(" ");
  return new Dz();
 }
 if("at".equals(type)){
  System.out.println(" ");
  return new At();
 }
 return null;
 }
}

공장 방법 모델은 간단한 공장 모델에 비해 확장이 편리하여 이전의 코드를 수정할 필요가 없다

public class Demo {

 /**
 * demo ,   
 */
 public static void main(String[] args) {
 AtFactory atFactory = new AtFactory();
 DzFactory dzFactory = new DzFactory();
 Car at = atFactory.createCar();
 Car dz = dzFactory.createCar();
 at.run();
 dz.run();
 }
}

interface Car {
 public void run();
}

class Dz implements Car {
 public void run() {
 System.out.println(" ");
 }
}

class At implements Car {
 public void run() {
 System.out.println(" ");
 }
}

interface CarFactory {
 Car createCar();
}

class DzFactory implements CarFactory {
 public Car createCar() {
 return new Dz();
 }
}

class AtFactory implements CarFactory {
 public Car createCar() {
 return new At();
 }
}

추상적인 공장 방법 모드:

public class Demo {

 public static void main(String[] args) {
 Car carFactory = new GDCarFactory();
 FDZ fdz = carFactory.createFdz();
 fdz.zhuansu();
 }
}

interface FDZ {
 void zhuansu();
}

class GDFDZ implements FDZ {
 public void zhuansu() {
 System.out.println(" ");
 }
}

class DDFDZ implements FDZ {

 public void zhuansu() {
 System.out.println(" ");
 }

}

interface ZY {
 void shushidu();
}

class GDZY implements ZY {

 public void shushidu() {
 System.out.println(" ");
 }

}

class DDZY implements ZY {

 public void shushidu() {
 System.out.println(" ");
 }

}

interface LT {
 void mosundu();
}

class GDLT implements LT {

 public void mosundu() {
 System.out.println(" ");
 }

}

class DDLT implements LT {

 public void mosundu() {
 System.out.println(" ");
 }

}

interface Car {
 FDZ createFdz();

 ZY createZy();

 LT createLt();
}

class GDCarFactory implements Car{

 @Override
 public FDZ createFdz() {
 return new GDFDZ();
 }

 @Override
 public ZY createZy() {
 return new GDZY();
 }

 @Override
 public LT createLt() {
 return new GDLT();
 }
 
}

class DDCarFactory implements Car{

 @Override
 public FDZ createFdz() {
 return new DDFDZ();
 }

 @Override
 public ZY createZy() {
 return new DDZY();
 }

 @Override
 public LT createLt() {
 return new DDLT();
 }
 
}


세 가지 방법의 비교:
1. 단순 공장 모델: 단순 공장 모델은 디자인이 간단하고 코드의 양이 적지만 확장성은 매우 떨어진다. 확장이 필요할 때 이전의 코드를 수정해야 한다
2. 공장 방법 모드: 확장성은 강하지만 코드 복잡도는 증가
3. 추상적인 공장 모델: 추상적인 공장 모델과 공장 모델은 다르다. 추상적인 공장 모델은 제품에 대해 등급을 나누지만 공장 모델은 제품에 대한 분류이다. 예를 들어 공장 모델은 서로 다른 품종의 자동차를 생산하는 것이다. 예를 들어 아우디와 폭스바겐이다. 추상적인 공장 모델은 같은 자동차에 대해 등급을 나눈다. 예를 들어 모두 폭스바겐이다. 우리는 고급차와 저급차를 나눈다.방법적으로 추상적인 공장 모델은 공장 모델의 세분화와 같다.하나는 서로 다른 제품을 겨냥한 것이고, 하나는 같은 제품 가족을 겨냥한 것이다.
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.

좋은 웹페이지 즐겨찾기