企业网站前台模板,动漫制作专业专升本考什么,本机怎么放自己做的网站,线上电商怎么做学会设计模式#xff0c;你就可以像拥有魔法一样#xff0c;在开发过程中解决一些复杂的问题。设计模式是由经验丰富的开发者们#xff08;GoF#xff09;凝聚出来的最佳实践#xff0c;可以提高代码的可读性、可维护性和可重用性#xff0c;从而让我们的开发效率更高。通…
学会设计模式你就可以像拥有魔法一样在开发过程中解决一些复杂的问题。设计模式是由经验丰富的开发者们GoF凝聚出来的最佳实践可以提高代码的可读性、可维护性和可重用性从而让我们的开发效率更高。通过不断的练习和实践掌握其中的奥妙选择合适的设计模式能为我们的项目增加一丝神奇的魔力。 文章目录 实例目的适用场景弊端类图框架用到的地方Coding测试测试结果 实例
一家SUV造车厂一家小轿车造车厂且小轿车会根据“厢”划分不同车型故作如下设计
目的
将买车顾客和汽车解耦工厂类承担构建所有对象的职责顾客只需要说出车型让工厂生产出来即可。并且解决某种车会有多种配置的情况若是使用前面的“简单工厂模式”我们就需要在汇总的工厂类中加入分支语句随着各类车增加车型会使汇总工厂类变得越来越大。「说白了再创建一个工厂用来创建工厂类对象」
适用场景
产品有大量的继承体系并且后期会有大量的扩展需求
弊端
每次增加一个产品时都需要增加一个具体类和对象实现工厂使得系统中类的个数成倍增加在一定程度上增加了系统的复杂度。
类图 框架用到的地方
日志记录、数据库访问等
Coding
Car接口
public interface Car {void creat();
}SmallCar
public class SmallCar implements Car {public SmallCar(Integer box) {this.creat(box);}public SmallCar() {this.creat();}Overridepublic void creat() {System.out.println(造一辆标配小轿车);}public void creat(Integer box) {System.out.println(造一辆 box 厢小轿车);}
}SUV
public class SUV implements Car{Overridepublic void creat() {System.out.println(造一辆SUV);}
}SmallCarFactory
public class SmallCarFactory {public Car creatCar(Integer box) {if (box ! null) {return new SmallCar(box);}return new SmallCar();}
}SUVCarFactory
public class SUVCarFactory {public Car creatCar(){return new SUV();}
}测试
public class Test {public static void main(String[] args) {SmallCarFactory smallCarFactory new SmallCarFactory();Car car smallCarFactory.creatCar(null);System.out.println(car);}
}测试结果
造一辆标配小轿车文章后期会持续优化如果觉得小名的文章帮助到了您请关注小名支持一下小名给小名的文章点赞、评论✍、收藏谢谢大家啦~♥♥♥ 编码魔法师系列文章会收录在小名的【设计模式】专栏中希望大家可以持续关注