前言
本文是对上一篇简单工厂模式的改进,本文结构使用的是工厂模式
上一篇链接https://blog.csdn.net/yohuU/article/details/112486521
一、工厂模式
工厂模式与简单工厂模式的区别是:
在简单工厂模式中,只有一个工厂生产所有的产品,但是这样不利于工厂的扩张
所以,工厂模式中定义一个工厂接口,不同的产品由不同的工厂生产,这样就能够实现很好的拓展
类图如下所示:
当用户需要某个图形的时候直接使用相应的工厂,就可以实现生成该图形的操作。
二.工厂类的变化
直接看的代码,工厂模式中工厂类如下
package FacotryPattern;
public interface Factory {
Shape createGeometry();
}
class RectangleFactory implements Factory{
@Override
public Shape createGeometry() {
return new Rectangle();
}
}
class SquareFactory implements Factory{
@Override
public Shape createGeometry() {
return new Square();
}
}
class RoundFactory implements Factory{
@Override
public Shape createGeometry() {
return new Round();
}
}
可以看到每个图形都会有一个相对应的工厂类来进行获取。
三.运行图
GUI比较简陋,主要是为了学习设计模式
最后
源代码我都上传到github上了有需要的可以去看看
链接:https://github.com/jianqiang-Zhang/DesignPattern
总结
工厂模式是对简单工厂模式的一个提升,它的可扩展性更大,但是仍有一定的不足,那就是当需要生产别的类型的东西时,该代码结构就不能够很好的实现复用,所以下一篇将介绍抽象工厂模式来对此缺点进行改进