有一次领导让我做一个,各报表显示的配置功能,两天完成了别人一个星期的工作量(我是出名的开发快,前后端一起搞定(前端不考虑美观)),领导在会议上对我一顿夸奖,夸奖我功能做的快又好,要求大家向我学习,我一顿狂喜!!!! 。
在不久一次小组会议上某酷来的一会同学对我提出了一些建议,说我功能做的确实快,但是要提升代码质量与高度,听后内心一万个不开心!当时我的内心暗暗下定决心要提高代码质量与设计。
在接下来的一段时间里我疯狂的学习设计模式!虽然没有立即运用到实战中,熟读兵法,但是灵活运用还需时日,但是对我以后的工作有了巨大影响。
小伙伴看我都带着崇拜的目光,
详细视频如下:https://www.bilibili.com/video/BV1jR4y1A7JE/
目标工厂模式有3种,分别是“简单工厂模式、工厂方法模式、抽象工厂模式”,接下来我们一个个的讲解。
简单工厂模式定义:由一个工厂对象决定创建出哪一种产品类的实例
类型:创建型,但是不属于GOF23种设计模式
适用场景
1. 在程序中需要创建的对象多,导致对象的new *** 作多且杂时。
2. 客户端只知道调用工厂类创建方法和传入参数,对于如何创建对象(逻辑)不关心
优点
只需要传入正确的参数,就可以创建你所需要的对象,而无需知道其创建的细节
缺点
工厂类的职责相对过重,增加新的产品需要修改工厂类的判断逻辑
,这违背开闭原则。
设计与调用关系UML图
产品接口 :Car
产品实现类:BmwCar
,JeepCar
工厂类:CarFactory
产品接口Car
public interface Car {
//启动汽车
void start();
}
产品实现类BmwCar
public class BmwCar implements Car{
@Override
public void start() {
System.out.println("启动了宝马车");
}
}
产品实现类JeepCar
public class JeepCar implements Car{
@Override
public void start() {
System.out.println("启动了吉普车");
}
}
产品工厂类CarFactory
public class CarFactory {
public static final String JEEP = "jeep";
public static final String BMW = "bmw";
public static Car createCar(String type){
if(CarFactory.JEEP.equals(type)){
return new JeepCar();
}else if(CarFactory.BMW.equals(type)){
return new BmwCar();
}else {
System.out.println();
return null;
}
}
}
调用者Test
public class Test {
public static void main(String[] args) {
Car car = CarFactory.createCar(CarFactory.JEEP);
car.start();
Car car1 = CarFactory.createCar(CarFactory.BMW);
car1.start();
}
}
输出结果
启动了吉普车
启动了宝马车
简单工厂-JDK源码详细解析教程
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)