1.工厂方法模式:
- 为了避免简单工厂模式的缺点,不完全满足OCP.
- 工厂方法模式和简单工厂模式最大的不同在于,简单工厂模式只有一个(对于一个项目或者一个独立的模块而言),
而工厂方法模式有一组实现了相同接口的工厂类。
package com.mfz.facotryMethod;
public interface Car {
void run();
}
package com.mfz.facotryMethod;
public class Audi implements Car {
@Override
public void run() {
System.out.println("奥迪再跑");
}
}
package com.mfz.facotryMethod;
public class Byd implements Car {
@Override
public void run() {
System.out.println("比亚迪再跑");
}
}
package com.mfz.facotryMethod;
public interface CarFactory {
Car createCar();
}
package com.mfz.facotryMethod;
public class AudiFactory implements CarFactory {
@Override
public Car createCar() {
return new Audi();
}
}
package com.mfz.facotryMethod;
public class BydFactory implements CarFactory {
@Override
public Car createCar() {
return new Byd();
}
}
package com.mfz.facotryMethod;
public class Client {
public static void main(String[] args){
Car c1 = new AudiFactory().createCar();
Car c2 = new BydFactory().createCar();
c1.run();
c2.run();
}
}