- 博客(7)
- 资源 (5)
- 收藏
- 关注
原创 开源项目MultiActionTextView解析
更多关于安卓源码分析文章,请看:安卓源码分析专栏 MultiActionTextView是GitHub一个热门的开源项目(项目地址:https://github.com/ajaysahani/MultiActionTextView),主要功能是可以方便地可以分别给TextView中的某几个字设置点击事件,最近分析了源代码,觉得也不复杂,就有了写博客的想法,用一个小demo来...
2015-05-31 10:17:40 1186
原创 调侃《First head 设计模式》之状态模式篇
现在有个糖果控制器,它的运行状态图如下: 我们要用java来实现这个糖果控制器。首先需要用一些实例变量来表示不同的状态: 我们的思路是创建一个糖果控制器类,它就像一个状态机,每个可能的操作都创建一个方法,在这些方法内部对当前状态进行判断,并做出相应的反应。 由于这并不难理解,所以直接上代码(有点长):
2015-05-24 10:42:45 1762
原创 调侃《Head First设计模式》之迭代器和组合模式(二)
在上一篇调侃《Head First设计模式》之迭代器和组合模式(一)主要讲了用类封装集合或者数组的迭代器,使得客户端可以方便遍历集合数组元素提高程序的可扩展性。这次继续按照它的故事,引入新的模式:组合模式。 之前菜单的结构是一个菜单包含着几个菜单项,但现在业务需要,菜单中也要包含子菜单(如下图),那该如何实现方便呢? 看,餐厅菜单中又包含着甜点菜单。这样,
2015-05-23 11:32:11 791
原创 调侃《Head First设计模式》之迭代器和组合模式(一)
现在餐厅来了两个新的厨师A和B,他们各自有各自接受菜单的方式。A的方式接受的是将菜单项放在一个ArrayList当中的菜单,而B则是接受将菜单项放在数组当中的菜单。一个菜单项的类如下: 餐厅的侍女的任务是对顾客需求打印定制的菜单,甚至告诉人们哪一个菜单项是素食。招代规格如下图: 两个厨师接收不同的菜单会导致什么问题呢?如果侍女要打印出
2015-05-17 10:56:13 887
原创 调侃《Head First设计模式》之模板方法模式
现在有两个人,一个爱喝咖啡,一个爱喝茶,让我们用代码创建咖啡和喝茶: 咖啡类: 茶类: 很容易发现,咖啡喝茶的代码有惊人的相似。 经过之前设计模式的阅读,你应该已经有意识的把相同的部分抽取出来。pourInCup和boilWater方法相同,于是可以考虑将它们整合到一个公共的类中,我们可以这样设计:
2015-05-09 10:41:09 1268
原创 调侃《Head First设计模式》之外观模式
上一篇谈了适配器模式,主要用于转换类的接口,今天谈外观模式,主要用于简化类的接口。照惯例由故事入手。 现在你要建立自己的家庭电影院,你心目中完美的家庭影院系统包括:DVD播放器、投影机、自动屏幕、环绕立体声甚至还有爆米花机。 看下这些组件的类图: 现在你好不容易将整个系统连起来了,准备播放电影了,播放电影你要执行以下步骤:
2015-05-02 12:39:01 879
原创 调侃《Head first设计模式》之适配器模式
你需要在欧洲使用美国制造的笔记本,但是插口和电压的不一致使得你需要一个叫做适配器的东西,如图: 通过适配器,我们就可以将本来不可以协调合作的两种事物联系在一起了。 那面向对象的适配器又是什么呢?其实,OO适配器和真实世界的适配器扮演着相同的角色:将一个接口转换为另一个接口,以符合用户的期望。 可以简单地用下图理解适配器: 现在我
2015-05-01 12:06:41 1236
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人