简单工厂模式优点
- 使代码解耦,客户端调用不需要知道其内部实现。
- 有利于封装,将公有的东西分离出来,用于继承,使其有内聚性。
简单工厂模式缺点
- 每次增加新的类型,需要修改原来的方法,影响其封闭开放原则
- 类型如果很多,会让调用方难以理解其含义。
实现
场景:水果都有单价,比如苹果,香蕉等,但是它们都属于水果。所以有以下实现。
-
首先实现水果接口,如下图:
-
实现苹果和香蕉具体类,并继承水果接口,如下图:
-
然后实现工厂类,创建苹果,香蕉实例:
-
调用方只需通过工厂类创建实例就行,获取对应单价: