设计模式
源码了解:hadluo
这个作者很懒,什么都没留下…
展开
-
策略模式
1.今天直接将jdk中实现的策略模式实例,Comparator比较器。下面自己实现一个:// 定义一个比较算法策略interface Comparator { /** * @param o1 * @param o2 * @return o1>o2返回1 , o1=o2返回0 , o1<o2返回-1 */ int compare(Object原创 2017-01-02 14:33:43 · 2539 阅读 · 0 评论 -
自己实现JDK的Proxy
1.动态代理,就是在运行期间动态生成一个代理类,通过代理类来调用我们主题类的方法(本文不讲动态代理模式,要自己先了解清楚)。所以首先我们得搞清楚怎么动态生成类,这里我用到的是jdk自带的javax.tools里面的 JavaCompiler等工具。2.动态生成类,下面是我封装好的一个工具代码:public class CompilerTool { /** * 编译生成class类对象原创 2017-01-09 16:09:55 · 2647 阅读 · 0 评论 -
java 组合模式
1.概述 组合模式比较简单,它将一组相似的对象看作一个对象处理,并根据一个树状结构来组合对象,然后提供一个统一的方法去访问相应的对象,以此忽略掉对象与对象集合之间的差别。2.代码实现// 子view , 模拟android的viewclass View { String name; public View() { // TODO Auto-generated c原创 2017-12-07 18:34:43 · 278 阅读 · 0 评论 -
模板方法模式
1.概述 模板方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意。 2.代码实现 使用过Servlet的人都清楚,除了要在web.xml做相应的配置外,还需继承一个叫HttpServlet的抽象类。HttpSer原创 2017-12-07 14:24:32 · 281 阅读 · 0 评论 -
java责任链模式(过滤器)
1.概叙责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任。Tomcat中的Filter就是使用了责任链模式,创建一个Filter除了要在web.xml文件中做相应配置外原创 2017-12-07 11:40:38 · 744 阅读 · 1 评论 -
外观模式 java
1.概述 外观模式(Facade),他隐藏了系统的复杂性,并向客户端提供了一个可以访问系统的接口。这种类型的设计模式属于结构性模式。为子系统中的一组接口提供了一个统一的访问接口,这个接口使得子系统更容易被访问或者使用。2.代码实现 我们假设一个app程序是一个Application,程序里面有很多组件(界面(Activity),服务(Service)等),Application没有生命周期,每个原创 2017-12-14 17:53:43 · 293 阅读 · 0 评论 -
观察者模式
概念:观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己。 下面来看下jdk中实现的观察者模式:// 观察者 的 接口描述public interface Observer { // 通知 Observable :被观察者 void update(Observable o,原创 2016-12-29 14:27:21 · 2492 阅读 · 0 评论 -
适配器模式
1.基本作用:适配器模式可以将一个类的接口和另一个类的接口匹配起来。2.下面我们来举一个java io中的一个适配器实例 InputStream:是表示字节输入流的所有类的超类。 Reader:是用于读取字符流的抽象类。 InputStreamReader: 将字节流转换为字符流。是字节流通向字符流的桥梁。 如何将这两者关联起来,这里就用到了适配器模式,jdk原创 2016-12-30 11:51:42 · 2575 阅读 · 0 评论 -
装饰器模式
1.概念:一种动态的往一个类中添加新的行为的设计模式。 2.装饰器模式的基本角色:被装饰类接口: Component 具体被装饰类: ConcreteComponent 装饰器抽象类: Decorator, 这个类可有可无具体看情况。 具体的装饰器类: ConcreteDecorator, 具体装饰器类实现真正的动态添加类的功能的作用。 3.还是得要上代码才能明白。// Component原创 2016-12-30 13:06:03 · 2509 阅读 · 0 评论 -
Java Holder 使用
1.很多框架都会使用Holder类,今天来介绍下其作用。考虑如下代码:public class Counter { public static void main(String[] args) throws InterruptedException { User user = new User(); user.name = "11111111";原创 2018-04-19 17:24:41 · 9057 阅读 · 5 评论