随笔分类 - JAVA设计模式
摘要:背景 日常编码中我们经常遇到 很多if else的代码,比如 String name=""; if ("1A".equals(name)){ System.out.println("1111111AAAAAAAAA"); }else if("2B".equals(name)){ System.out
阅读全文
摘要:背景 当一个java对象有大量的成员变量,在构造它的时候有以下几种方式 1.构造方法传参 缺点:代码难以编写,难以阅读) 2.使用get set方法:缺点:每个set只操作一个属性 没有相近属性进行更好的封装 3.builder构造器 build构造器 builder构造器会把类的成员变量分成好几类
阅读全文
摘要:这篇文章介绍了责任链模式的应用:本文介绍如果自己实现一个责任链 定义请求和响应信息 简单定义请求类Request(封装一个字符串) 简单定义响应类Response 定义Filter(参数接收Request和Response) 至于为什么接收FilterChain(是为了下面filter里面能够调用F
阅读全文
摘要:前言 观察者模式其实没啥,就是把方法调用 ,用多态抽象封装了一下。 调用方称为观察者,被调用方是被观察者。 和MQ非常类似 不过MQ是异步的 这个同步的 观察者模式基础 以下是小孩(被观察者)哭这个动作,通知所观察者(Mum Dad Dog)做出不同的反应 /** * 分离观察者与被观察者 */ c
阅读全文
摘要:常用集合 set Set不按特定方式进行排序,并且没有重复的对象,它的有些实现类能对集合中的对象按照特定的顺序排序。主要有两个实现类:HashSet和TreeSet HashSet按照哈希算法来存取集合中的对象,存取速度比较快。 TreeSet实现了SortSet接口,具有排序功能。 List Li
阅读全文
摘要:适配器概念 在计算机编程中,适配器模式将一个类的接口适配成用户所期待的。使用适配器,可以使接口不兼容而无法在一起工作的类协调工作,做法是将类自己包裹在一个已经存在的类中。 JDK对适配器设计模式的应用 InputStreamReader(InputStream in) 创建一个使用默认字符集的 In
阅读全文
摘要:假定已经有三个类A,B和C他们的继承关系如下 想进一步扩展类B和类C的功能,新增三个方法 method1()、 method2()、 method3()。 要求 类B和类C 满足 可能新增一个方法,两个方法,或者三个方法 用继承扩展(缺点很大) 解决办法,用继承关系 给B写7个子类(3个方法的排列组
阅读全文
摘要:责任链的设计模式可以参考Servlet的FilterChain。FilterChain中的每个Filter(过滤器)就像一个个的链条 web开发中 有时候需要对接口request和response进行过滤操作(特殊字符过滤,权限过滤等) 接口Filter doFilter(ServletReques
阅读全文
摘要:代理模式的特点 代理模式是常用的java设计模式,它的特征是代理类与委托类有同样的接口。代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类。 代理类的对象并不是真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。 按照代理类的创建时期,代理类可分为两种 静态代理类:由程序
阅读全文
摘要:1.首先来看最普通的工厂模式 1.1 定义一个需要工厂生产的java类 1.2 写一个最普通的工厂 上面的是最普通的工厂模式,不过使用new关键字来创建的对象,如果代码中出现很多这种new的代码(POJO除外) 那么 这种非常不容易维护和扩展。 2.对工厂模式优化 -->反射工厂 这样 我们的代码里
阅读全文
摘要:首先了解static 关键字 static声明的方法是静态方法,static声明的成员变量为静态成员变量。对于该类的所有对象来说,static的成员变量和static只有一份存储空间 即使没有创建该类的对象(实列),也可以使用该类static的成员变量和static方法。 static所修饰的成员变
阅读全文
摘要:学会使用JDK运用策略模式的接口
阅读全文