工厂模式
工厂简介
工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
个人理解:工厂模式可看做汽车生产工厂,假如该汽车工厂生产:宝马,奥迪,奔驰,比亚迪,北京现代等种类的车,那么4s旗舰店订购这些车只需要跟这些代理(对象)联系便可(汽车怎么生产,如何生产与旗舰店无关),如何销售这些汽车是旗舰店自己需要完成的事情。
优缺点
- 优点:扩展性强(若有另一种汽车生产出来,直接实现接口便可),封闭性好(旗舰店并不知道汽车如何生产,只能通过工厂对象获取相应的汽车)。
- 缺点:可能使程序复杂。若新型汽车生产出来,旗舰店若想获取必须要有工厂生产,此时必须增加工厂类。这便使程序变得更加复杂。
代码解释
- 汽车接口
public interface Car_interfsce {
public void car_element();
}
- 汽车实体类
//奥迪
public class Car_ad implements Car_interfsce{
@Override
public void car_element() {
System.out.println("奥迪已经生产100万辆");
}
}
//奔驰
public class Car_bc implements Car_interfsce {
@Override
public void car_element() {
System.out.println("奔驰已经生产100万辆");
}
}
//宝马
public class Car_bm implements Car_interfsce{
@Override
public void car_element() {
System.out.println("宝马已生产100万辆");
}
}
//比亚迪
public class Car_byd implements Car_interfsce{
@Override
public void car_element() {
System.out.println("比亚迪已生产100万辆");
}
}
- 工厂类
//工厂一
public class Factory_applcation_1 {
public void agent(){
Car_interfsce car_interfsce_ad=new Car_ad();
car_interfsce_ad.car_element();
Car_interfsce car_interfsce_bc=new Car_bc();
car_interfsce_bc.car_element();
}
}
//工厂二
public class Factory_application_2 {
public void agent(){
Car_interfsce car_interfsce_bm=new Car_bm();
car_interfsce_bm.car_element();
Car_interfsce car_interfsce_byd=new Car_byd();
car_interfsce_byd.car_element();
}
}
-实体店类
//店1
public class Shop_4s_1 {
public static void main(String[] args) {
Factory_applcation_1 factory_applcation_1=new Factory_applcation_1();
factory_applcation_1.agent();
}
}
//店2
public class Shop_4s_2 {
public static void main(String[] args) {
Factory_application_2 factory_application_2=new Factory_application_2();
factory_application_2.agent();
}
}
尾语
工厂模式是一种在同一接口下,有不同的实例化种类,且结果也可能不同。将不同结果都实例化出来,把需要的放在一个工厂中,调用时只需要new一个工厂对象(new 工厂名())。以上是个人的一些看法,请大家指正批评。