一、定义
简单工厂模式:根据参数的不同返回不同类的实例。
二、结构
工厂类:是此模式的核心,负责处理不同参数返回的实例。
抽象类:被创建的实例的父类,是工厂类的返回类型。
实现类:具体功能的实现类,继承于抽象类。
三、成因
今天晚上谁侍寝啊?
- 把嫔妃们都叫过来,然后皇上点名。(这多麻烦啊,还有伤大雅。)
- 找个公公准备些牌子,各自刻上妃子的名字,想谁侍寝就翻谁牌子。
然后再由公公去把翻了牌子的妃子给带到寝宫来,嘻嘻嘻,岂不美哉。
以上两种方案孰好孰怀,皇上已经心有见定!
在代码中,皇上就是调用你代码的人。
- 工厂类=公公(能按牌子叫来对应妃子)
- 抽象类=妃位(有侍寝的特性)
- 实现类=具体妃子(实现侍寝功能)
四、优缺点
优
- 外部调用方便,无需自行创建各种对象。
缺
- 扩展功能时需要改动工厂类。
五、使用建议
- 实现类数量不超过二十个时考虑使用。
- 不想把实现类暴露出去时考虑使用。