工厂设计模式(五) - 使用场景

前言

工厂设计模式系列文章
工厂设计模式(一)- 简介
工厂设计模式(二) - 简单工厂模式
工厂设计模式(三) - 工厂方法模式
工厂设计模式(四) - 抽象工厂模式
工厂设计模式(五) - 使用场景

1. 工厂设计特性


  • 很多的对象都有公用的特性,并且开发后期可能存在多样性,意思就是比如我一开始是采用MemoryIOHandler运行内存存储,但是到后期我想采用SP或者磁盘存储,可以让其进行来回的切换,这个就叫做多样性;
  • 同时,我们还不想让别人知道我们每一种存储方式的创建细节,而且创建的过程比较复杂;

比如:我自己写了一个数据库,但是怕后期随着功能的扩展、需求的增多,它的性能跟不上,我到后期想采用第三方的数据库,还有就是我们的数据之前是存储在data/data/ 外部存储卡,直接在手机存储目录就可以找到,同时对于它的初始化也需要比较复杂的过程;

2. 开发中的使用


1>:图片:可以让ImageLoader、Picasso、Glide来回切换使用;
2>:地图:可以让百度地图、高德、腾讯、谷歌地图来回切换;

比如:
https格式的图片,在5.0以下不能显示,这个时候就可以使用 工厂设计模式,或者自己也可以写一个隔离层也是可以的;

3. 源码中的使用


BitmapFactory:BitmapFactory.decodeFile();
XmlPullParserFactory:
LayoutInflaterFactory:专门用于创建View;

4. 工厂设计模式是什么?


说白了,工厂设计模式就是专门生产对象的,把对象的实例化和初始化都封装起来,这样做其实保证了解耦、最少知识原则;

代码已上传至github:
https://github.com/shuai999/Architect_day10.git

你可能感兴趣的:(工厂设计模式(五) - 使用场景)