工厂模式之抽象工厂

Factory设计模式之抽象工厂

Demo地址

https://github.com/rocky123shine/AbsFactory180417

概念

定义一个用于创建对象的统一的接口,然后由子类去实现。工厂模式分为简单工厂和抽象工厂。本文将对抽象工厂做个简单的了解和使用。
抽象工厂给客户端提供一个接口,可以创建多个产品族中的产品对象。

AbsFactory使用条件

1.系统中有多个产品族,而系统一次只可能消费其中一族产品
2.同属于同一个产品族的产品以其使用

AbsFactory实现和使用

AbsFactory实现

  1. 两个抽象类,AbsFactory和AbsObject
  2. AbsFactory中提供创建对象的方法并且返回AbsObject
  3. AbsObject中提供对象通用的方法
  4. 具体的Object实现,具体的对象的功能模块的抽象和实现
  5. 具体的工厂实现
  6. 创建具体的工厂和对象类

AbsFactory使用

  AbsFactory factory = new BaiDuFactory();
        AbsMapView mapView = factory.createMapView();
        AbsMapLocation mapLocation = factory.createMapLocation();
        AbsMapNavigation mapNavigation = factory.createMapNavigation();
        mapNavigation.turnByTurn();
        mapLocation.location();

Factory实际应用举例

例如在开发中 我们呀开发地图模块,其中有百度地图,高德地图,谷歌地图等可供用户选择。在选择的过程中就需要实现不同地图间的切换。如果我们使用工厂模式,那么无论以后再增加其他地图,只要我们换一下具体对象就 能轻松实现,代码的扩展性可维护性大大提高,此时如果在加上地图的定位和导航功能 简单工厂明显不够用,这时候 抽象工厂就是很好的选择

猜你喜欢

转载自blog.csdn.net/rocky123shine/article/details/79973405