- 博客(72)
- 资源 (13)
- 问答 (2)
- 收藏
- 关注
转载 适配器模式(转载)
在阎宏博士的《JAVA与模式》一书中开头是这样描述适配器(Adapter)模式的: 适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。适配器模式的用途 用电器做例子,笔记本电脑的插头一般都是三相的,即除了阳极、阴极外,还有一个地极。而有些地方的电源插座却只有两极,没有地极。电源插座与笔记本电脑的电源插头不匹配使得笔...
2018-09-13 20:29:37 239
转载 抽象工厂模式(转载)
场景问题 举个生活中常见的例子——组装电脑,我们在组装电脑的时候,通常需要选择一系列的配件,比如CPU、硬盘、内存、主板、电源、机箱等。为讨论使用简单点,只考虑选择CPU和主板的问题。 事实上,在选择CPU的时候,面临一系列的问题,比如品牌、型号、针脚数目、主频等问题,只有把这些问题都确定下来,才能确定具体的CPU。 同样,在选择主板的时候,也有一系列问题,比如品牌、芯片组、集成...
2018-09-13 20:12:22 243
转载 原型模式(转载)
在阎宏博士的《JAVA与模式》一书中开头是这样描述原型(Prototype)模式的: 原型模式属于对象的创建模式。通过给出一个原型对象来指明所有创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象。这就是选型模式的用意。原型模式的结构 原型模式要求对象实现一个可以“克隆”自身的接口,这样就可以通过复制一个实例对象本身来创建一个新的实例。这样一来,通过原型实例创建新的...
2018-09-13 19:40:25 222
转载 享元模式(转载)
在阎宏博士的《JAVA与模式》一书中开头是这样描述享元(Flyweight)模式的: Flyweight在拳击比赛中指最轻量级,即“蝇量级”或“雨量级”,这里选择使用“享元模式”的意译,是因为这样更能反映模式的用意。享元模式是对象的结构模式。享元模式以共享的方式高效地支持大量的细粒度对象。Java中的String类型 在JAVA语言中,String类型就是使用了享元模式。Strin...
2018-09-13 19:04:11 150
转载 备忘录模式(转载)
在阎宏博士的《JAVA与模式》一书中开头是这样描述备忘录(Memento)模式的: 备忘录模式又叫做快照模式(Snapshot Pattern)或Token模式,是对象的行为模式。 备忘录对象是一个用来存储另外一个对象内部状态的快照的对象。备忘录模式的用意是在不破坏封装的条件下,将一个对象的状态捕捉(Capture)住,并外部化,存储起来,从而可以在将来合适的时候把这个对象还原到存储起...
2018-09-13 12:28:41 269
转载 迭代器模式(转载)
在阎宏博士的《JAVA与模式》一书中开头是这样描述迭代子(Iterator)模式的: 迭代子模式又叫游标(Cursor)模式,是对象的行为模式。迭代子模式可以顺序地访问一个聚集中的元素而不必暴露聚集的内部表象(internal representation)。聚集和JAVA聚集 多个对象聚在一起形成的总体称之为聚集(Aggregate),聚集对象是能够包容一组对象的容器对象。聚集依...
2018-09-13 12:13:51 915
转载 解释器模式(转载)
在阎宏博士的《JAVA与模式》一书中开头是这样描述解释器(Interpreter)模式的: 解释器模式是类的行为模式。给定一个语言之后,解释器模式可以定义出其文法的一种表示,并同时提供一个解释器。客户端可以使用这个解释器来解释这个语言中的句子。解释器模式的结构 下面就以一个示意性的系统为例,讨论解释器模式的结构。系统的结构图如下所示: 模式所涉及的角色如下所示: (...
2018-09-12 09:17:43 133
转载 模板方法模式(转载)
在阎宏博士的《JAVA与模式》一书中开头是这样描述模板方法(Template Method)模式的: 模板方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意。模板方法模式的结构 模板方法模式是所有模式中...
2018-09-12 09:02:27 111
转载 命令模式(转载)
在阎宏博士的《JAVA与模式》一书中开头是这样描述命令(Command)模式的: 命令模式属于对象的行为模式。命令模式又称为行动(Action)模式或交易(Transaction)模式。 命令模式把一个请求或者操作封装到一个对象中。命令模式允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。命令模式的结构 命令模式是对命令的封装。命...
2018-09-12 08:40:17 133
转载 访问者模式(转载)
在阎宏博士的《JAVA与模式》一书中开头是这样描述访问者(Visitor)模式的: 访问者模式是对象的行为模式。访问者模式的目的是封装一些施加于某种数据结构元素之上的操作。一旦这些操作需要修改的话,接受这个操作的数据结构则可以保持不变。分派的概念 变量被声明时的类型叫做变量的静态类型(Static Type),有些人又把静态类型叫做明显类型(Apparent Type);而变量所引...
2018-09-11 19:52:09 128
转载 代理模式(静态代理+动态代理)(转载)
代理模式是Java常见的设计模式之一。所谓代理模式是指客户端并不直接调用实际的对象,而是通过调用代理,来间接的调用实际的对象。为什么要采用这种间接的形式来调用对象呢?一般是因为客户端不想直接访问实际的对象,或者访问实际的对象存在困难,因此通过一个代理对象来完成间接的访问。在现实生活中,这种情形非常的常见,比如请一个律师代理来打官司。下面例子的代码可以访问源码。欢迎star,欢迎fork代...
2018-09-11 19:09:12 134
转载 门面模式(外观模式)(转载)
针对外观模式,在项目开发和实际运用中十分频繁,但是其极易理解,下面就简要介绍一下。一、概念介绍 外观模式(Facade),他隐藏了系统的复杂性,并向客户端提供了一个可以访问系统的接口。这种类型的设计模式属于结构性模式。为子系统中的一组接口提供了一个统一的访问接口,这个接口使得子系统更容易被访问或者使用。 二、角色及使用场景 简单来说,该模式就是把一些复杂的流程封装成一个接口...
2018-09-11 18:54:14 107
转载 中介者模式(转载为主)
原文出处:http://blog.csdn.net/zhengzhb/article/details/7430098 定义:用一个中介者对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使耦合松散,而且可以独立地改变它们之间的交互。类型:行为类模式类图:中介者模式的结构 中介者模式又称为调停者模式,从类图中看,共分为3部分: 抽象中介者:...
2018-09-11 17:13:53 125
转载 状态模式(转载)
状态模式(State)的定义定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类状态模式(State)适用性 1.一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为。 2.一个操作中含有庞大的多分支的条件语句,且这些分支依赖于该对象的状态...
2018-09-10 12:45:59 152
原创 ubuntu14.04编译android5.1.1
1. 安装sudo apt-get install openssh-serversudo apt-get install curlsudo apt-get install gitsudo apt-get install vimsudo apt-get install openjdk-7-jdk 2. 配置gitgit config --global user.email "...
2018-09-10 09:42:17 1351
转载 责任链(委托)模式
在阎宏博士的《JAVA与模式》一书中开头是这样描述责任链(Chain of Responsibility)模式的: 责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配...
2018-09-07 11:16:01 427
转载 策略模式
《JAVA与模式》之策略模式(转载自http://www.cnblogs.com/java-my-life/archive/2012/05/10/2491891.html)在阎宏博士的《JAVA与模式》一书中开头是这样描述策略(Strategy)模式的: 策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算...
2018-09-07 10:18:30 129
原创 构造者Builder模式
根据对象的属性行为创建实例,通常有几种方法:(1)通过带有参数的构造函数(同时函数重载),来满足根据不同属性(必选属性,可选属性)创建对象(2)通过无参构造函数(或者有参构造函数),再配合属性的getter,setter方法灵活地设置对象的属性(3)通过Builder模式创建对象分析几种方式的特点:方式(1)(2)对于简单对象的创建比较合适,这种场景下对象属性基本固定且属性的数...
2018-09-07 09:11:11 907
原创 观察者模式
在对象之间定义了一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象会收到通知并自动更新。其实就是发布订阅模式,发布者发布信息,订阅者获取信息,订阅了就能收到信息,没订阅就收不到信息。(Android中Eventbus框架就是这种模式典型实现)举例:以微信公众号为例:测试代码:输出结果: 这种模式在实际项目中经常遇到,也是比较容易掌握的。...
2018-09-06 10:17:32 122
原创 装饰者模式
动态地给一个对象添加一些额外的职责。就增加功能来说, Decorator模式相比生成子类更为灵活。该模式以对客 户端透明的方式扩展对象的功能。其中具体涉及的角色有:(1)抽象组件:定义一个抽象接口,来规范准备附加功能的类(2)具体组件:将要被附加功能的类,实现抽象构件角色接口(3)抽象装饰者:持有对具体构件角色的引用并定义与抽象构件角色一致的接口(4)具体装饰:实现抽象装饰者角色,负...
2018-09-06 09:21:24 109
原创 组合模式
组合多个对象形成树形结构以表示具有“整体—部分”关系的层次结构。组合模式对单个对象(即叶子对象)和组合对象(即容器对象)的使用具有一致性,组合模式又可以称为“整体—部分”(Part-Whole)模式,它是一种对象结构型模式。Android中View层次结构就采用了组合模式。View是最高层的抽象,它既代表单独的View视图,又可以表示ViewGroup视图容器。组合模式的关键是定义...
2018-09-05 17:24:27 120
原创 桥梁模式
桥梁模式的用意是“将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者独立的变化”。抽象化 其实就是根据事物的特征或者行为共性抽取出抽象类或者接口的过程。实现化抽象化给出的具体实现,就是实现化。其实也就是根据事物特征或者行为的差异性 给出不同的具体实现。即抽象类的实现或者接口的实现类。脱耦所谓耦合,就是两个实体的行为的某种强关联。而将...
2018-09-05 15:44:24 1403
原创 工厂模式
1. 根据静态工厂方法创建对象2. 在1的基础上,提供一个工厂类的接口。工厂类均要实现这个接口(即抽象工厂)。那么不同的抽象工厂实现类就可以去创建不同类别的对象。 3. 可以在工厂接口中定义多个方法,对应创建不同类型的对象 ...
2018-09-04 18:54:39 99
原创 SpringMVC 和 Mybatis 整合流程
(1) dao层applicationContext-dao.xml 配置数据源,SqlSessionFactoryBean(SqlSessionFactory),MapperScannerConfigurer(mapper.xml,mapper的扫描)完成这一步后,通过mapper接口就可以操作基本数据库(mapper对应的bean在Spring容器启动后就实例化)(2) service层...
2018-08-30 19:53:04 285
原创 Eclipse配置web工程默认的编译输出路径
1:创建一个txt文件,并改名为:“org.eclipse.wst.web.prefs” 2:打开text文件,复制以下代码:3:将文件后缀名”.txt”去掉,使文件为“org.eclipse.wst.web.prefs” 4:将文件移动到你所配置的工作区间:%workspace%\.metadata\.plugins\org.eclipse.core.runtime\.se...
2018-08-29 16:27:27 1166
原创 解决springmvc注解开发报java.lang.IllegalArgumentException
Spring mvc开发中遇到:使用注解映射器,注解适配器,以及注解Controller过程中,进行服务器访问时遇到错误:java.lang.IllegalArgumentException at org.springframework.asm.ClassReader.<init>(Unknown Source) at org.springframework.asm.Class...
2018-08-29 10:22:40 2351
原创 关于Spring中 @PostConstruct 没有生效的问题
近期刚刚学习Spring, 实验是在java开发环境中引入spring jar等方式进行的。在学习bean 生命周期的过程, bean的生命周期步骤中有一个初始化相关的:其中指定了两种初始化方式:1: xml中<bean>标签中配置 init-method, 并在对应的bean中实现该初始化方法2: 通过在java bean上给初始化方法添加@PostConstruct...
2018-08-01 15:55:13 27146 4
原创 eventbus使用与源码分析
1. 依赖compile 'org.greenrobot:eventbus:3.0.0' 2.EventBus的三要素 :(1) Event:事件,可以是任意类型的对象。(2) Subscriber:事件订阅者,在EventBus3.0之前消息处理的方法只能限定于onEvent、onEventMainThread、onEventBackgroundThread和onE...
2018-07-11 14:55:55 186
原创 Android butterknife源码分析流程
本文以一个小案例的分析过程,对butterknife的整个流程做了一个相对细致的解说:其中包含:(1)如何通过编译时注解处理器生成中间文件;(2)运行时资源的绑定过程;其中关于R资源文件的处理 scanForRClasses(env); 这部分原理我并未理解,有知道的朋友不妨告知,不甚感激!第一步:如何根据源文件以及所加的注解生成中间文件: 第二步: 运行时如何根据中间文件实现资源的绑定:总结:...
2018-07-09 11:04:28 288
原创 注解的使用介绍以及APT使用介绍
1. 概念(什么叫注解Annatation)? 2. Java中的常见注解(1) @Override @Target(ElementType.METHOD)用于重写父类方法,或者实现接口对应的方法(2) @ Deprecated @Target(value={CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE,PARAMETER, TYPE}...
2018-07-05 16:53:50 2429 1
原创 RecyclerView详解3之滑动流程
滑动流程涉及到到View的事件分发机制, 建议先看下事件分发机制:了解dispatchTouchEvent, onInterceptTouchEvent, onTouchEvent, onTouch, onClickMotionEvent.ACTION_DOWN, MotionEvent.ACTION_MOVE, MotionEvent.ACTION_UP 等...
2018-07-02 09:34:22 476
原创 RecyclerView详解2之首次测量布局绘制流程
根据View的绘制流程:measure --> layout --> draw 进行分析:
2018-07-02 09:25:33 392
原创 RecyclerView详解1之基本使用
RecyclerView的使用上主要涉及:1.build.gradle中添加依赖 implementation 'com.android.support:recyclerview-v7:26+'2. xml布局文件中使用RecyclerView控件<android.support.v7.widget.RecyclerView android:layout_width="match_...
2018-07-02 09:23:10 357
原创 Handler,Loop,Thread,MessageQueue,Message关系讲解
还是用图说明,模拟子线程中handler创建以及消息处理流程。 顺便提了下 ThreadLocal 的set() get()机制。主线程的Looper.prepare() , Looper.loop() 已经在framework做了,所以主线程在使用上非常轻松。...
2018-05-05 11:10:23 282
android开发调用系统返回键出问题了,求救。。。
2014-09-19
android中checkbox的文本隐藏
2014-07-31
TA创建的收藏夹 TA关注的收藏夹
TA关注的人