装饰者模式设计android,Context以及装饰者模式

66b52468c121889b900d4956032f1009.png

8种机械键盘轴体对比

本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?

Context参考资料

装饰者模式参考资料:研磨设计模式,Android源码设计模式解析与实战。

1.1 Context的继承关系

f072b7233fbc2410a0c3633db9d12858.png从这里看出来,context只有三种,service,application和activity。

Context数量 = Activity数量 + Service数量 + Application(1)

当然,这里指的是单进程的情况下。

1.2 Context的应用场景

b93e6208e600e987864be52fe5d4bc56.png注意事项 1.与UI相关的context,则要用activity的context

2.因为activity的context生命周期和application的生命周期不一样,

Context引用的持有可能造成OOM的问题

3.startActivity时,不要用application的context来进行,因为如果用

application去开启activity,会产生一个新的task,不建议

4.如果某个类中获取的context基本都是属于application,那么建议

统一在单独的类中进行获取,方便开源自己的util库。

无需在application中写newInstance,因为application本身就是单例

单例的控制是在系统层。所以我们看不到

5.如果utils类需要传activity的context的话,就必须通过传参的形式处理。

1.3 使用Application时的注意事项Application是单例,全局只有一个(多进程除外),无需new,系统组件的实例是要由系统来去创建的

如果new Application的话,它就只是一个普通的Java对象,不具备任何Context的能力。

2.装饰者模式

1.作用:首先知道某个设计模式的作用,以及结合生活应用场景

何为装饰者,简而言之,就好比人,穿不同的衣服,虽然有不同的装饰,但是本质还是人。

其职责就是给对象添加一些额外的职责,通常用于继承关系的一种替代方案之一。

扯特幺半天,总感觉接口也可以达到这样的效果。

2.基本功:(查缺补漏)

3.优缺点

4.画出对应的UML,记住关键性代码(uml相当于骨架或者大纲,代码相当于血肉)

5.通过1-2个源码分析来巩固自己对该模式的理解(进阶)

6.相关设计模式的配套使用(每个设计模式,并不是单一的去体现某一个设计原则,设计模式之间可以相互配合使用)

7.与人交流(不能活在自己的世界里闭门造车,强行去理解)

如果不需要某个奖金计算方式了,直接不写就行了,原有的可以保留。

如果是新增计算方法,那么新建一个类就好了。

但是如果修改,那就恶心。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值