android 简单工厂模式,android与模式:工厂方法模式-factory method

工厂模式

这是大家很容易上手,也是大家学设计模式最开始接触到的模式,确实这个模式很有意思。

书上这么说的:"Define  an  interface  for  creating  an  object,  but  let  subclasses  decide  which  class

to instantiate." -- 定义一个创建对象的借口,让子类来决定实例化这个类。

这里有3点:

1,定义一个借口,我认为这是决策类,生产工具

2,定义类,上层类,这个类是用来被实现或继承的

3,根据一定条件来实例上层类的子类

我不知道我说的明白还是糊涂。但说个例子大家都很明白了。

上文讲过getSystemService(name)这个方法,这是一个获取系统服务对象的方法,经常用,比如输入法,ams,wms,pms等都是这么来用的,来看代码:

public Object getSystemService(String name) {

if (getBaseContext() == null) {

throw new IllegalStateException(

"System services not available to Activities before onCreate()");

}

if (WINDOW_SERVICE.equals(name)) {

return mWindowManager;

} else if (SEARCH_SERVICE.equals(name)) {

ensureSearchManager();

return mSearchManager;

}

return super.getSystemService(name);

}

从这里可以看出通过传入name条件,可以生成不同的对象,这些对象都是Object这个对象的子类。从上面3点来看是这样的:getSystemService就是那个接口,Object就是那个上层类,windowmanager,searchmanager就是子类,name就是条件,就是如此。

那么用工厂模式有什么好处呢?谈到设计模式优缺点,我们只需要这么考虑就行:变化。当有变化的时候才能看出设计的巧妙。

工厂模式的妙处就在于其灵活的拓展机制。假设我们需要添加一个新的对象服务,那么只需要做到2步:

1,修改getSystemService方法,添加一个条件

2,新增一个对象服务

那么其他地方都可以不变,这样修改量小,且不影响之前程序的稳定,无疑是很愉快的。

你觉得呢?欢迎举例android中用到的工厂方法。

问个问题:

1,BitmapFactory中有没有工厂方法的使用?如何使用?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值