07 2019 档案

摘要:前言 Composite设计模式,将物体组合成一个树结构,让单个对象和组合对象使用起来都一样,组合对象负责将实际的操作分发给每一个组件。 这篇博文分析了安卓的View相关的类,它们可以说是用了Composite设计模式。其中分析View的measure,layout,draw是如何从组合对象分发给单 阅读全文
posted @ 2019-07-28 16:58 楷哥 阅读(347) 评论(0) 推荐(0)
摘要:前言 Bridge设计模式,将一个复杂类分成可以单独开发的部分。分成的两个部分,abstraction,implementation。字面上是抽象和实现,但不同于抽象方法及其实现。下面摘录Wiki的两句话。 decouple an abstraction from its implementatio 阅读全文
posted @ 2019-07-25 19:32 楷哥 阅读(177) 评论(0) 推荐(0)
摘要:前言 Adapter设计模式,允许客户端使用接口不兼容的类。 昨天收拾一些以前的东西,发现了藏在柜子里的一条线,这条线叫做OTG。这条线的一端是micro-usb的输出口,另一端是usb的输入口。这条线,就是Adapter。手机如果想要使用U盘,会发现这个U盘的usb输出口太大了,根本插不进手机的接 阅读全文
posted @ 2019-07-24 19:45 楷哥 阅读(322) 评论(0) 推荐(0)
摘要:前言 Singleton设计模式,确保全局只存在一个该类的实例。将构造器声明为private,防止调用(虽然还是可以使用反射来调用)。声明一个静态的类实例在类中,声明一个公共的获取实例的方法。这篇博文给出了简单的实现方法,分析如何做到线程安全,整理了使用Singleton的坏处。 线程安全 方法一是 阅读全文
posted @ 2019-07-23 18:26 楷哥 阅读(185) 评论(0) 推荐(0)
摘要:前言 这篇讲设计模式的部分相对较少。Prototype设计模式,它提供一种复制对象的思路。使用Prototype就可以在不需要了解类结构的前提下,复制一个现有对象。写了一个代码片段,讲解使用Object.clone()要注意浅拷贝,深拷贝的问题。最后,去找到clone实现的native代码,大致了解 阅读全文
posted @ 2019-07-22 18:39 楷哥 阅读(141) 评论(0) 推荐(0)
摘要:前言 Builder设计模式,允许一步一步构建一个复杂的对象。将构建步骤抽象出来,让每个具体的Builder去实现构建步骤的内容。这样子就可以用同样的构建步骤,构建出不一样的对象。在Director类的协助下,可以将固定的构建步骤封装起来,给Director一个Builder,让Director来调 阅读全文
posted @ 2019-07-21 22:41 楷哥 阅读(151) 评论(0) 推荐(0)
摘要:前言 这篇博客将包括两种设计模式,一种是工厂模式,一种是抽象工厂模式。不管是哪一种设计模式,本质上在解决的问题是对象创建的问题。工厂,可以是简简单单的一个函数,也可以是一个有具体实现的类,也可以是一个抽象的类。它们共同的特点都是在创建对象。工厂,根据函数输入,或者自身的类型,决定创建抽象类的一个/一 阅读全文
posted @ 2019-07-20 16:18 楷哥 阅读(194) 评论(0) 推荐(0)