2、 工厂方法模式(常用)
弊端:耦合分散到各个工厂中,类的数量过多,程序不易读
优势:遵循开闭原则
Automatic:
package com.neuedu.demo3.fac2;
public abstract class Automatic {
public abstract void display();
}
AutomaticFactory:
package com.neuedu.demo3.fac2;
public abstract class AutomaticFactory {
public abstract Automatic product();
}
Benz:
package com.neuedu.demo3.fac2;
public class Benz extends Automatic {
@Override
public void display() {
System.out.println("奔驰");
}
}
BenzFactory :
package com.neuedu.demo3.fac2;
public class BenzFactory extends AutomaticFactory{
public Automatic product() {
return new Benz();
}
}
BMW :
package com.neuedu.demo3.fac2;
public class BMW extends Automatic {
@Override
public void display() {
System.out.println("BWM");
}
}
BMWFactory :
package com.neuedu.demo3.fac2;
public class BMWFactory extends AutomaticFactory{
@Override
public Automatic product() {
// TODO 自动生成的方法存根
return new BMW();
}
}
Test :
package com.neuedu.demo3.fac2;
public class Test {
public static void main(String[] args) {
AutomaticFactory f1 = new BenzFactory();
AutomaticFactory f2 = new BMWFactory();
Automatic a = f1.product();
Automatic b = f2.product();
a.display();
b.display();
}
}
如果需要增加新的内容,直接创建新的类与方法类即可,对原有产品线不产生影响