JAva GOF 23設計モード-単純工場モード進級

1244 ワード

既存のコードを変更するのではなく、コードを追加してすべてのクラスと付き合わず、総インタフェースの実装クラスとしか付き合わないpublic class Cilent{
public static void main(String[] args) {

    Car c1=new AudiFactory().createCar();
    Car c2=new ByadiFactory().createCar();
    Car c3=new BenzFactory().createCar();

    c1.run();
    c2.run();
    c3.run();
}

}
インタフェース:public interface Car{
void run();
}
  1:
public class Benz implements Car {

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

}
  2:
public class Byadi implements Car{

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

}実装3:
public class Audi implements Car {

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

}ファクトリ:インタフェース:
public interface CarFactory {

Car createCar();

}実装1:
public class AudiFactory implements CarFactory{

public Car createCar()
{
    return new Audi();
}

}実装2:
public class BenzFactory implements CarFactory {

public Car createCar()
{
    return new Benz();
}
}

実装3:
public class ByadiFactory implements CarFactory {

public Car createCar()
{
    return new Byadi();
}
}