设计模式与Android工厂方法模式——化工女神的工厂
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式与Android工厂方法模式——化工女神的工厂相关的知识,希望对你有一定的参考价值。
什么是工厂方法模式
所谓工厂方法模式,就是定义一个用于创建对象的接口,让子类决定实例化哪个类的设计模式。工厂模式适用于需要生成复杂对象的地方。
工厂方法模式的实现方式
这次我不打算用文学作品举例了,以前前几篇文章用《三国演义》和《水浒传》举例,某IT社区的技术编辑居然认为我是半路出家做android程序员的文科生。既然这个设计模式以“工厂”命名,那么我们就用工厂打比方,我用我的化学知识证明我是高中学的理科,大学学的软件工程。国内某985院校的化工女神毕业后自主创业,开办了一个生产化肥的化工厂,主要产品有氮肥、磷肥、钾肥、炸药(好像有什么奇怪的东西混进来了)。
首先定义一个抽象的化工厂类:
public abstract class ChemicalFactory { |
然后定义化工女神的化肥工厂:
public class GoddessChemicalFactory extends ChemicalFactory { |
接下来定义一个抽象的化肥类:
public abstract class Chemical { |
定义氮肥类:
public class NChemical extends Chemical { |
定义磷肥类:
public class PChemical extends Chemical { |
定义钾肥类:
public class KChemical extends Chemical { |
定义炸药类:
public class Explosive extends Chemical { |
开工大吉:
GoddessChemicalFactory factory = new GoddessChemicalFactory(); |
化工女神的化肥工厂日进斗金,读化工女神的故事的程序员学会了工厂方法模式,这位技术编辑也不再怀疑作者是文科生。
Android源码中的工厂方法模式
(1)Iterable及其子类
ArrayList、LinkedList和HashSet等常见数据结构都实现了Iterable接口,这就是典型的工厂方法模式。
(2)Activity的onCreate
没错,就是Android初学者第一眼就见到的onCreate,任何Activity都是Activity的子类,而任何控件都是View的子类,onCreate方法是最容易被遗忘的工厂方法模式。
Android开发中如何利用工厂方法模式
(1)工厂方法模式利用依赖注入以达到解耦、复用和方便后期维护拓展的目的。工厂方法模式应用广泛,我提示一个最经典的应用场景:Android数据存储中的本地存储可以细分为File、SharedPreferences和SQLite三种,可以继承有增、删、改、查四种方法的抽象产品类。
需要注意的几个问题
(1)工厂方法模式的缺点是每次添加新的产品时就要编写一个新的产品类,同时还要引入抽象层,这必然会导致类结构的复杂化,所以工厂方法模式不适用于结构太简单的情况。
本文出自 “玖哥的书房” 博客,请务必保留此出处http://dongfeng9ge.blog.51cto.com/9191243/1972483
以上是关于设计模式与Android工厂方法模式——化工女神的工厂的主要内容,如果未能解决你的问题,请参考以下文章
工厂方法模式(Factory Method Pattern) 应用篇(下)