每日Android源码设计模式之-四、工厂模式
2017-03-17 本文已影响0人
Alexey
工厂模式相信大家很熟悉了,使用得很多
定义:
定义一个用于创建对象的接口,让子类来决定实例化哪个类。
使用场景:
任何需要生成复杂对象的地方,都可以使用工厂模式
使用方法:
有一个抽象的产品类,然后具体的子类去实现它。
然后有一个Factory类,在类里面有一个的createProduct方法,用来根据传入的参数创建具体的哪个产品类。
也可以传入Xxxx.Class,用反射来生成具体的实现类。
不用多讲了,实现很简单。
在android中的应用
我们知道Activity中有一个onCreate方法,onCreate中有一个setContentVIew设置了不同的view进去,不同的Activity设置了不同的View为当前界面的ContentView并传输给framework处理,大家体会下,其实这就是一个工厂模式结构。
工厂模式实战:
我们在进行数据存储的时候,可以写入文件流,可以写入SQlite数据库,可以写为xml文件等。
这时候我们可以定义一个抽象的类,里面有增删改查四种抽象方法,在具体的文件流、SQlite、xml文件写入类中具体实现。
最后在写一个工厂类,我们使用的时候往工厂类中通过传入Xxxx.class来生成实例并返回。
然后就可以调用增删改查方法。
总结,可能的缺点是当我们多了一个新产品的时候,需要编写一个新的产品类,还要引入抽象层,使得结构复杂度提高。