不修改已有代码, 而是添加代码
不和所有类打交道, 只和总接口的实现类打交道
- 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();
- }
- }
来源: http://www.bubuko.com/infodetail-3209958.html