设计模式-工厂模式
1. 什么是工厂模式
工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。
2. 优缺点
优点:
1、一个调用者想创建一个对象,只要知道其名称就可以了。
2、扩展性高,如果想增加一个产品,只要扩展一个工厂类就可以。
3、屏蔽产品的具体实现,调用者只关心产品的接口。
缺点:
每次增加一个产品时,都需要增加一个具体类和对象实现工厂,使得系统中类的个数成倍增加,在一定程度上增加了系统的复杂度,同时也增加了系统具体类的依赖。这并不是什么好事。
3.具体应用
1、您需要一辆汽车,可以直接从工厂里面提货,而不用去管这辆汽车是怎么做出来的,以及这个汽车里面的具体实现。
2、Hibernate 换数据库只需换方言和驱动就可以。
3、在传统spring开发中,我们需要配置xml文件如下:
<bean id="calendarC" class="com.jt.manage.factory.CalendarFactory"></bean>
然后做如下调用
ApplicationContext context = new ClassPathXmlApplicationContext("spring/factory.xml");
Calendar calendarA = (Calendar) context.getBean("calendarA");
ApplicationContext是BeanFactory的子类,相当于工厂,getBean()方法传一个名称,得到一个对象相当于产品。我们不关心具体对象具体是如何产生的,不知道具体对象的类名,我们只需一个名称,这就是工厂的作用,实现了对象创建延后,再配合上xml文件和反射,实现了解耦合,即使我们更改类名,也不需要动代码,只需配置文件更改。
4.UML类图
4.1简单工厂模式
4.2工厂模式