提高代码质量
huhanghao
Dream it Wish it Do it
展开
-
设计模式——观察者模式
观察者模式参考:http://blog.csdn.net/xiehuimx/article/details/60872690http://www.cnblogs.com/java-my-life/archive/2012/05/16/2502279.htmlUML结构简介在这里subject是抽象出来的通知者基类,Observer是观察者基类。在通知者中有一个观原创 2017-03-12 21:43:42 · 239 阅读 · 0 评论 -
设计模式——建造者模式
设计模式——建造者模式建造者模式:可以将一个产品的内部表象与产品的生成过程分割开来,生成具有不同的内部表象的产品。建造者模式中,用户只需指定需要建造的类型就可以得到它们。UML结构简介product是最后的产品集合。Builder是抽象的建造的步骤ConcrereBuilder是具体的构建细节。Director是指挥建造的指挥者。代码示例:product:原创 2017-10-09 14:54:25 · 180 阅读 · 0 评论 -
设计模式——中介者模式
设计模式——中介者模式多个对象存在复杂的交互,但是为了最大化解耦,我们为两个对象设计了中介者模式。在中介者对象中,对多个对象进行交互操作。但是这提高了中介者复杂性。UML图:在ConcreteCollege1和ConcreteCollege2中持有了中介对象。而中介对象实例也持有ConcreteCollege1和ConcreteCollege2。ConcreteCollege1原创 2017-09-27 10:04:00 · 236 阅读 · 0 评论 -
设计模式——代理模式
设计模式——代理模式一个复杂对象的多份副本须存在时,代理模式可以结合享元模式以减少内存用量。它对外部提供统一的接口方法,而代理类在接口中实现对真实类的附加操作行为,从而可以在不影响外部调用情况下,进行系统扩展。UML图:Proxy和RealSubject都实现了相同的方法,作为RealSubject的代理人Proxy,他是暴露给外边调用的,因为他内部持有RealSubject对原创 2017-09-27 10:01:21 · 165 阅读 · 0 评论 -
设计模式——享元模式
设计模式——享元模式在需要创建大量相同对象的操作中,为了减少对应的对象创建,可以采用享元模式。它有效支持大量细粒度对象的复用。UMl图:Flyweight: 抽象享元类。所有具体享元类的超类或者接口,通过这个接口,Flyweight可以接受并作用于外部专题 。ConcreteFlyweight: 具体享元类。指定内部状态,为内部状态增加存储空间。 Unshare原创 2017-08-28 10:51:37 · 265 阅读 · 0 评论 -
设计模式——生产消费者模式
设计模式——生产消费者模式生产者消费者问题是线程模型中的经典问题:生产者和消费者在同一时间段内共用同一存储空间,生产者向空间里生产数据,而消费者取走数据。像图片下载加载的模型就可以参考这个模型。UML图:消费者和生产者同时对仓库(即这里的队列)里的货物进行操作,这里需要注意的是线程的控制和数据的线程安全问题。消费者和生产者都和仓库有着关联,但不一定是聚合关系,只是消原创 2017-09-05 11:26:44 · 13888 阅读 · 0 评论 -
设计模式—职责连模式
设计模式—职责连模式请求发送者向多个对象发送请求,同时避免了与接收者之间的耦合关系。将接收者连成一条链,并沿着这条链传递该请求,直到有一个接收者处理它为止。这个设计模式很适合做像分级审批项目这种类似的实例。在处理者之间进行处理职责的划分,而请求发送者仅仅和第一个处理者进行交互(甚至可以有一个中间代理来处理)从而避免过度的耦合。1、 抽象事件处理者对象,里面原创 2017-08-21 09:56:01 · 225 阅读 · 0 评论 -
代码重构原则和方法
代码重构原则和方法参考:《安卓开发进阶——从小工到专家》重构原则:我们重构代码的原则很简单,就是我往让代码保持:1、清晰2、简单3、可扩展。重构方法:1、 提取子函数2、 上移至父类3、 下移至子类4、 封装固定的调用逻辑5、 使用泛型去除重复逻辑6、 使用对象避免过多的参数7、原创 2017-08-17 12:55:12 · 5379 阅读 · 0 评论 -
面向对象六大原则解析
面向对象六大原则解析面向对象六大原则:在面向对象编程时有六大原则:l 单一职责原则l 里氏替换原则l 依赖倒置原则l 开闭原则l 接口隔离原则l 迪米特原则在java中与其说是面向对象编程,不如说是面向接口编程,或是面向抽象类编程。在这个思想下我们进入总结单一职责原则:也就是在设计接口或是类时里面的函数最好是高度相关的。不要想着把所有旁支原创 2017-08-16 23:59:01 · 692 阅读 · 0 评论 -
安卓设计模式——桥接模式
安卓设计模式——桥接模式将抽象的部分与它的实现部分分离,使它们都可以独立地变化。手机有一个抽象类:各种品牌的手机;还有一个实现类:手机的各种功能软件。我们通过桥接模式可以把这些实现独立出来,让他们各自变化。所以在需要多角度去分类实现对象的时候,只用继承会造成大量的类增加,不满足开放-封闭原则,所以用桥接可以解决这个痛点。桥接模式的UML图:原创 2017-07-12 13:37:59 · 397 阅读 · 0 评论 -
设计模式--状态模式
设计模式--状态模式在处理一个事情的时候,他的状态发生改变,我们需要应对改变过的状态做不同的处理。 一般的状态量,我们最简单的都采用的是switch或者if/else来解决但是在面向对象的设计模式来说我们要尽量满足单一职责原则。因此需要将对应的行为进行抽象为对应的对象或接口。1、状态state要进行抽象,抽象出我们需要进行的状态动作。2、原创 2017-05-09 10:05:04 · 355 阅读 · 0 评论 -
设计模式—职责连模式
设计模式—职责连模式请求发送者向多个对象发送请求,同时避免了与接收者之间的耦合关系。将接收者连成一条链,并沿着这条链传递该请求,直到有一个接收者处理它为止。这个设计模式很适合做像分级审批项目这种类似的实例。在处理者之间进行处理职责的划分,而请求发送者仅仅和第一个处理者进行交互(甚至可以有一个中间代理来处理)从而避免过度的耦合。1、 抽象事件处理者对象,里面原创 2017-05-15 21:46:58 · 295 阅读 · 0 评论 -
Android从小工到专家 之 性能优化
Android从小工到专家 之 性能优化页面的优化include布局:当页面内容比较多,而且此页面重复性比较大的时候,我们通过include将子布局引 入到一个布局文件中。原理:在解析sml布局的时候,如果检测到include标签,则把布局下的根视图添加到父布局所在的xml中。在解析xml标签的时候,我们会用到parseInclude函数去解析include标签。Merge标签当子布局的根视图和他...原创 2018-06-18 18:03:39 · 476 阅读 · 0 评论