自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序亦非猿——一个能帮你进大厂的男人

阿里资深 Android开发工程师,欢迎关注公众号「程序亦非猿」

  • 博客(18)
  • 收藏
  • 关注

原创 模板方法模式

模板方法模式模板方法模式: 在一个方法中定义一个算法的估价,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变方法结构的情况下,重新定义算法的某些步骤。类图具体来说:创建一个算法的模板,这个模板其实就是第一个方法(需要定义为final)。而这个方法将算法定义成一组步骤,其中的任何步骤都可以是抽象的,由子类负责实现。这样可以确保算法结构保持不变,同时由子类提供...

2016-07-26 22:09:30 49

原创 策略模式

策略模式定义了算法族,分别封装起来,让它们之间可以相互转换,此模式让算法的变化独立于使用算法的客户。其实就是利用多态的特性,使用面向接口的编程方式来做。特点:定义算法族分别封装算法可以相互替代可以动态切换算法策略模式通常通过定义 一个Interface,再写不同的实现类去实现的。体现的设计原则: 开闭原则,针对接口编程 ...

2016-07-26 22:09:07 59

原创 状态模式

状态模式状态模式: 允许对象在内部状态改变时改变它的行为,对象看起来好像修改它的类。状态模式把每个状态都独立成类,并将动作委托到代表当前状态的对象。类图Context需要持有 所有状态的一个实例(弹性的代价),通过不同状态来切换状态对象,把行为委托给当前状态的对象,客户端不知道Context内部的状态,跟策略模式不同,策略模式需要客户端去指定策略,而且一般来讲策...

2016-07-26 22:08:34 58

原创 代理模式

代理模式这一章节的内容较多,笔记比较乱,还是看书好些。代理模式: 为另一个对象提供一个替身或占位符以控制对这个对象的访问。所谓代理(proxy),就是代表某个真实的对象。代理要做的就是:控制和管理访问(控制对象访问)why? 是因为Client不知道如何和远程对象沟通。从某方面来看,远程代理控制访问,可以帮忙处理一些细节(比如网络,IPC)。类图(Su...

2016-07-26 22:07:57 50

原创 观察者模式

观察者模式观察者模式:定义了对象之间的一对多依赖,这样依赖,当一个对象改变状态时,它的所有依赖者都会受到通知,并自动更新。出版者(Subject) + 订阅者(Observer) = 观察者模式观察者依赖于主题。UML观察者模式提供了一种对象设计,让主题和观察者之间松耦合。观察者与主题之间依赖于接口,主题不需要知道观察者的具体实现可以动态...

2016-07-26 22:07:21 55

原创 迭代器模式

迭代器模式迭代器模式(Iterator): 提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。迭代器模式服务『集合』,为了更好地管理集合。所谓集合(Collection)就是是,一群对象,可以放在数组、堆栈、列表、散列表等。集合有时候也被称为『聚合』(aggregate)。迭代器的意义与优势我们不需要知道一个集合到底是数组还是列表还是什么其他的结构...

2016-07-26 22:06:40 66

原创 工厂模式

工厂模式工厂模式分两种模式:工厂方法抽象工厂简单工厂使用new Xxx()创建对象非常脆弱,缺乏弹性,耦合度高。当具体类需要新增或删除的时候,就必须修改这段代码,非常容易出错,难以维护和更新。所以需要把创建对象的方法封装起来,用“工厂”来负责创建对象。定义Factory:使用:看起来可能只是把代码挪到了另外一个地方,...

2016-07-26 22:05:59 80

原创 外观模式

外观模式(Facade)外观模式: 提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。或者说:将一个类或数个类的复杂的一切都隐藏在背后,只显露出一个感觉美好的外观。外观模式创建一个接口简化而统一的类,用来包装子系统中的一个或者多个复杂的类,而暴露给客户端的是非常简单的接口,让 客户端和子系统解耦。类图特点让接口更...

2016-07-26 22:05:02 64

原创 设计原则

设计原则设计模式中的设计原则封装变化找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。或者说是:把变化的部分取出来并封装起来,以便以后可以轻易地改动或扩充此部分,而不影响不需要变化的其他部分。优势:代码变化引起的不经意后果变少,系统变得更有弹性针对接口编程针对接口编程,而不是针对实现编程将行为放在不同的类中,此类专门提供某行为接口的实...

2016-07-26 22:04:11 80

原创 装饰者模式

装饰者模式装饰者模式:动态地将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案。装饰者模式可以给类 动态地添加功能,而不需要修改已经存在的类,类似一个Wrapper。装饰者有弹性,非常符合 开闭原则特点装饰者和被装饰者对象拥有相同的超类型你可以用一个或多个装饰者包装一个对象既然装饰者和被装饰者对象拥有相同的超类型,所以在任何需要原始对象(被包...

2016-07-26 22:01:37 51

原创 复合模式

复合模式复合模式结合两个或以上的模式,组成一个解决方案,解决一再发生的一般性问题。复合模式在一个解决方案中结合两个或多个模式,已解决一般或重复发生的问题。MVC就是一个复合模式。(书中把MVC夸得不行不行的-0-~,称它为 复合模式之王!)多的不说,截一张示意图:MVC ...

2016-07-26 22:01:14 64

原创 组合模式

组合模式组合(Composite)模式:允许你将对象组合成树形结构来表现“整体/部分”层次结构。组合能让客户以一致的方式处理个别对象以及对象组合。组合模式比较复杂一些,跟迭代器模式配合威力强大。类图树形结构:带子元素的元素称为 『节点』(node)没有子元素的元素称为 『叶节点』(leaf)包含其他组件的组件为『组合对象』,没有包含其他组件的...

2016-07-26 22:00:37 55

原创 命令模式

命令模式命令模式: 将请求封装成对象,这可以让你使用不同的请求、队列,或者日志请求来参数化其他对象。命令模式也可以支持撤销操作。将请求封装成对象,比如 Runnable将 发出请求的对象 和 接受与执行这些请求的对象 分隔开来。类图一些应用:日程安排、线程池、工作队列等。感觉Android中的 Handler 相关也可以算是:把命令(Runnable对...

2016-07-26 22:00:01 61

原创 适配器模式(Adapter)

适配器模式(Adapter)适配器模式:将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。适配器非常形象的图:形象图非常形象的模式,就像生活中的手机充电器,电脑的电源适配器一样。使用场景当想使用一个已经存在的类,但是不匹配需求接口的时候,可以考虑使用适配器模式来适配,如果有需要还可以做 双向适配,来完成适配。类图...

2016-07-26 21:59:10 172

原创 UML类图知识整理

UML类图UML,进阶必备专业技能,看不懂UML就会看不懂那些优秀的资料。这里简单整理类之间的关系泛化关系(generalization)泛化(generalize): 一条带空心箭头的线表示实现(realize) : 一条带空心箭头的虚线表示泛化在Java中表现为继承(extends) ,is-a的关系实现在Android中表现为implements 接口,或...

2016-07-19 13:58:00 119

原创 一步一步深入理解CoordinatorLayout

一步一步深入理解CoordinatorLayoutGoogle推出Design库已经一年了,国内也出过一些文章关于CoordinatorLayout,但是都是叫你怎么用,或者简单的自定义一些Behavior,并没有一篇文章深入去了解它的原理。刚好这两天为了实现一个UI效果,看了CoordinatorLayout(后面简称Col(我懒- -))的官方文档以及源码,搞懂了它的原理...

2016-07-13 09:29:57 115

原创 那些做Android开发必须知道的ADB命令

那些必须知道的ADB命令科普: ADB的全称是Android Debug Bridge 熟练掌握ADB命令可以提高开发效率以下记录一些比较常用的命令:adb start...

2016-07-13 08:18:03 63

原创 一步一步深入理解CoordinateLayout

好久没更了,这次带来一篇源码分析因带有不少源码,我尽力编辑,发现在手机上的浏览效果依然不佳所以,推荐在PC端阅读,或者点击原文阅读Google推出Design库已经一年了...

2016-07-13 08:18:03 779

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除