초 설계 모드 - 공장 모드

6513 단어
단순 공장 모드
추상 적 인 인터페이스, 여러 개의 추상 적 인 인터페이스의 실현 류, 한 공장 류 는 추상 적 인 인 인 터 페 이 스 를 예화 하 는 데 사용 된다.
//      
abstract class Car {
   public void run();

   public void stop();
}

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

   public void stop() {
       System.out.println("Benz 。。。。。");
   }
}

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

   public void stop() {
       System.out.println("Ford 。。。。");
   }
}

//
class Factory {
   public static Car getCarInstance(String type) {
       Car c = null;
       if ("Benz".equals(type)) {
           c = new Benz();
       }
       if ("Ford".equals(type)) {
           c = new Ford();
       }
       return c;
   }
}

public class Test {

   public static void main(String[] args) {
       Car c = Factory.getCarInstance("Benz");
       if (c != null) {
           c.run();
           c.stop();
       } else {
           System.out.println(" 。。。");
       }

   }

}

 
공장 방법 모델
네 가지 역할 이 있 는데 추상 적 인 공장 모델, 구체 적 인 공장 모델, 추상 적 인 제품 모델, 구체 적 인 제품 모델 이 있다.더 이상 한 공장 류 에서 구체 적 인 제품 을 예화 하 는 것 이 아니 라 추상 적 인 공장 의 하위 류 에서 제품 을 예화 하 는 것 이다.
 
//       
public interface Moveable {
   void run();
}

//
public class Plane implements Moveable {
   @Override
   public void run() {
       System.out.println("plane....");
   }
}

public class Broom implements Moveable {
   @Override
   public void run() {
       System.out.println("broom.....");
   }
}

//
public abstract class VehicleFactory {
   abstract Moveable create();
}

//
public class PlaneFactory extends VehicleFactory {
   public Moveable create() {
       return new Plane();
   }
}

public class BroomFactory extends VehicleFactory {
   public Moveable create() {
       return new Broom();
   }
}

//
public class Test {
   public static void main(String[] args) {
       VehicleFactory factory = new BroomFactory();
       Moveable m = factory.create();
       m.run();
   }
}

 
추상 공장 모드
공장 방법 모델 과 달리 공장 방법 모델 중의 공장 은 단일 한 제품 만 생산 하고 추상 적 인 공장 모델 중의 공장 은 여러 제품 을 생산 한다.
 
/     
public abstract class AbstractFactory {
   public abstract Vehicle createVehicle();
   public abstract Weapon createWeapon();
   public abstract Food createFood();
}
// , Food,Vehicle,Weapon ,
public class DefaultFactory extends AbstractFactory{
   @Override
   public Food createFood() {
       return new Apple();
   }
   @Override
   public Vehicle createVehicle() {
       return new Car();
   }
   @Override
   public Weapon createWeapon() {
       return new AK47();
   }
}
//
public class Test {
   public static void main(String[] args) {
       AbstractFactory f = new DefaultFactory();
       Vehicle v = f.createVehicle();
       v.run();
       Weapon w = f.createWeapon();
       w.shoot();
       Food a = f.createFood();
       a.printName();
   }
}

좋은 웹페이지 즐겨찾기