
设计模式
下一个丶奇迹
Android路上,一起爬坑。。。
展开
-
Java之command模式
对于本篇文章,送给那些有部分代码经验的新手,因为我也是新手,如有错误,还请多多批评指正。遥想码农当年,意气风华,神采飞扬,风华正茂,挥斥方遒,浮浮沉沉的码海中,来去自如。如今细细一想,已经踏入这条不归路两年有余,如今黯然失色,萎靡不振,执手相看泪眼,却无语凝咽。言归正传,先把话题扯到command模式来,举一个很简单的例子,前几天去餐馆吃饭,对服务员点了一份红烧肉一份牛肉,此刻,服务员会在菜单上面把原创 2015-11-24 17:27:31 · 3745 阅读 · 0 评论 -
十分钟认识单例模式的多种姿势
对于单例模式,有点工作经验的人都使用过,原本未打算去写这块的,感觉多此一举,虽然写博客最主要的目的是给自己做笔记,但由于种种原因,决定把这个最基础的设计模式拿出来写成两篇博客,第一篇叙述七种单例,第二篇叙述单例中的坑,主要是双重锁的滥用和扩展思考。 使用单例的优点:单例类只有一个实例共享资源,全局使用节省创建时间,提高性能其中表现方式饿汉式public class Singleton原创 2016-07-05 10:35:45 · 2163 阅读 · 2 评论 -
通过Java源码分析初探观察者模式(一)
源码中,起关键性作用的就是vector和changed,在observable实例化的时候,就初始化了一个空的vector,可以通过vector添加和移除vector操作后,当observable发生改变时,通过changed去判断是否通知,在我们的上述示例代码中使用setChanged(),主要是因为第一次加入的时候,不会去调用observer的update方法,也就是changed为false,当changed为原创 2016-05-30 09:16:51 · 7210 阅读 · 3 评论 -
十分钟学习建造者模式
本篇从生活中实例开始,循序渐渐,一步步引入观察者模式。2010刚上大学的时候,辅导员都会让学委统计下学生的信息,第一次的时候,只是让学委统计基本信息,姓名、学号、手机号,当拿到这个要求的时候,一般情况下我们会采用构造函数去实现,把姓名、学号、手机号作为参数传过去,然后打印出来就好,代码如下:public class BuilderTest{ /** * created by zer原创 2016-08-19 14:42:59 · 3317 阅读 · 2 评论 -
建造者模式在实际开发中的运用
通过上篇《十分钟学习建造者模式》相信大家对建造者有了一个基本的认识了,但有些人会有疑问,对于建造者模式,怎么灵活运用到项目中,有时候我也会有这样的体会,对于一个知识点或者技术,看了一遍后就觉得会了,但却不知道怎么灵活运用,才疏学浅,只是分享下自己一些微薄的见解,如有错误,还请多多留言指教。不多说了,直奔主题,先说一个需求,在我目前手里的两个项目里面,都有大量的popupwindow,这些pop原创 2016-08-19 23:05:59 · 5827 阅读 · 4 评论 -
通过在Android实际开发初探模板模式(一)
最近比较忙,就很少更新自己的笔记(blog),昨天一个功能的开发中,总觉得那个页面会是一个很好的案例,就想把它记录到笔记中,今天忙中偷闲,把它单独拿出来做个笔记分享下。首先,我们先看下效果图: 看到这个的时候,当时瞬间有点兴奋,解决方案爆棚在一个activity中用五个listview或者recyclerview控制显示和隐藏在一个activity中用一个listview或者recycle原创 2016-06-22 16:25:03 · 4117 阅读 · 12 评论 -
单例模式之坑与爬坑
上篇简述了其中单例还有部分个人看法,本篇主要从三个问题进行开展怎么避免线程阻塞怎么避免内存泄漏怎么避免被反射首先先看一段事例代码public class OkHttpUtils{ private static OkHttpClient singleton; private static final int TIME_OUT = 0X00000A; private Ok原创 2016-07-05 17:10:54 · 3114 阅读 · 1 评论 -
迪米特法则在Android实际开发中的运用
迪米特法则(Law of Demeter,LoD)也称为最少知识原则(Least Knowledge Principle,LKP)。如果两个类不必彼此间直接通信,那么这两个类不应该发生直接的相互关系。如果其中一个类需要调用另一个类的方法,可以通过第三者转发这个调用。 迪米特法则还有一个英文解释:Only talk to your immedate friends(只与直接的朋友通信)。对于这个翻译原创 2016-06-30 23:54:30 · 3483 阅读 · 1 评论 -
命令模式在Android实际场景中运用
**命令模式(Command Pattern),是行为型模式之一。在日常生活和开发过程中,这是一个非常常见的设计模式,比如我们电脑关机这个操作,我们只需要点击关机键便可以实现关机,内部是通过什么进行关机的,我们不需要去知道,计算机会帮我们实现这个功能。**优点: (1)比较容易地实现一个命令队列。 (2)比较容易将队列记入日志。 (3)请求者和实现者通过接口进一步解耦。 (4)可以容易地实原创 2016-05-22 21:52:28 · 2955 阅读 · 1 评论 -
通过Android源码分析再探观察者模式(二)
接着上篇文章,现在在通过Android实际开发和源码再探观察者模式,listview是我们日常开发中必用的控件,虽然之前就有listview的替代品(recyclerview),现在不去深究两个控件到底谁好谁差,但有一点需要强调下,它们之间有一大相同点,都是通过观察者模式去实现数据更新。首先,我们先去看一个简单的例子/** * * created by zero on2016-6-1 *原创 2016-06-01 08:21:11 · 12103 阅读 · 1 评论 -
通过MVC与MVP的对比,简述单一职责原则
本文将通过MVC与MVP模式分析,循序渐进的讲述单一职责原则。MVC MVP 通过上述两张图可以很明显的看出MVP在MVC的基础上进行解耦,再次不做多余的分析,先简单看一个例子,点击按钮后,从0到1000进行相加,得到结果后先赋值给model,再把model的值在textview上显示。public class MainModel{ public int value;}/**原创 2016-05-28 10:24:34 · 1893 阅读 · 1 评论