工厂方法模式
2019-03-19 本文已影响0人
fanren
定义
定义一个用户创建对象的统一接口,然后由子类实现。
分类
- 简单工厂
- 工厂方法
- 抽象工厂
角色划分
- 简单工厂
** 角色一:具体的产品
** 角色二:具体的工厂 - 工厂方法
** 角色一:抽象的产品
** 角色二:具体的产品
** 角色三:抽象的工厂
** 角色四:具体的工厂 - 抽象工厂
** 角色一:抽象的产品A
** 角色二:抽象的产品B
....
** 角色三:具体的产品A1
** 角色四:具体的产品A2
...
** 角色五:具体的产品B1
** 角色六:具体的产品B2
...
** 角色七:抽象的工厂
** 角色八:具体的工厂
原始案例
demo
以生产电脑为例,mac电脑,联想电脑,华为电脑
- 角色一:抽象的产品(ComputerProtocol)
具有统一的规范,都有电脑的数据(主机,键盘,屏幕) - 角色二:具体的产品(MacComputer, LXComputer, HWComputer)
- 角色三:抽象的工厂(FactoryProtocol)
具有统一的规范,都可以生产电脑 - 角色四:具体的工厂(MacFactory,LXFactory,HWFactory)
开发案例
地图案例
在实际的开发中,我们会遇到各种地图,有百度地图,高德地图,谷歌地图等等;但是因为各种原因,我们可能会在开发中需要切换地图;为了不修改代码中的逻辑,我们需要对地图进行一层封装,以方便我们使用;
已完成一些简单的功能,包括地图展示,设置地图中心点,定位功能(包括单次定位,多次定位等等);