java设计模式
诛仙89
11111
展开
-
动态代理源码分析
一、JDK动态代理//首先定义一个接口public interface IUserSave { void save();}//被代理的类public class UserSave implements IUserSave { @Override public void save() { System.out.println("save met...原创 2020-01-03 23:05:29 · 114 阅读 · 0 评论 -
行为型模式-迭代模式
一、介绍某些类具有相同的行为,那么这个时候就是迭代模式的使用场景了。比如典型的集合类都需要遍历,这个时候为了做的通俗易懂,集合类中都有个方法iterator(),这个方法返回一个接口,利用这个接口就可以实现遍历。而且接口的子类最好是集合类的内部类,去实现该集合的具体遍历逻辑。二、代码结构演示2.1 抽象接口public interface Iterator<E> { ...原创 2019-11-26 15:32:30 · 111 阅读 · 0 评论 -
行为型模式--观察者
观察者模式 Observer 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。 这个主题对象在状态上发生变化时,会通知所有观察者对象,让它们能够自动更新自己。观察者模式的组成 抽象主题角色:把所有对观察者对象的引用保存在一个集合中,每个抽象主题角色都可以有任意数量的观察者。抽象主题提供一个接口,可以增加和删除观察者角色。一般用一个抽象类和接口来实现。 抽象观察者翻译 2016-03-12 22:31:48 · 251 阅读 · 0 评论 -
行为型模式--责任链(二)
这里模仿的类似于Servlet里面的filter或者Struts2里面的拦截器实现原理处理流程图 具体处理流程参考责任链(一) 下面只是针对责任链(一)的改变Filter接口package com.hfview.designMode.zerenlian.web;public interface Filter { String doFilter(Request req,Response r翻译 2016-03-12 21:35:43 · 396 阅读 · 0 评论 -
行为型模式--责任链(一)
本文是翻译马士兵设计模式视频资料责任链适应图那条线代表正常处理业务类package com.hfview.designMode.zerenlian.common;public class MsgProcessor { private String msg; FilterChain fc; public FilterChain getFc() { return fc翻译 2016-03-12 21:05:37 · 297 阅读 · 0 评论 -
行为型模式--状态模式
一、介绍状态模式和策略模式从UML图上看是非常相似的,但是他们之间的差别确实巨大的,状态模式强调的是我现在处于什么状态,我这个状态之后我可以做什么。我不可以做什么,而且状态之间的切换至在具体状态子类中进行切换的。他不像策略模式,具体策略是平行的,没有关系的。状态模式中各个状态是有关系的。二、代码结构介绍列举一个简单的电风扇开关例子2.1、抽象状态角色public interface St...原创 2019-11-28 13:54:25 · 92 阅读 · 0 评论 -
行为型模式--策略模式
利用类似JDK的比较原理理解定义一个接口Comparable(实现类代表具有比较性)package com.hfview.designMode.celuo;public interface Comparable<T> { int compareTo(T o); }定义一个Person类实现自定义Comparable 接口package com.hfview.designMode.celuo;p原创 2016-03-12 16:39:47 · 270 阅读 · 0 评论 -
结构型模式-装饰模式
装饰模式文章是装载的,忘了出处不好意思。1. 抽象角色package com.hfview.designMode.decorator;/** * 抽象的接口 * */public interface People { void wear();}2.具体角色package com.hfview.designMode.decorator;/** * ...翻译 2018-04-11 10:55:22 · 103 阅读 · 0 评论 -
结构型模式-适配器模式
一、介绍这个模式使用场景是代码重构,有时候你需要一个类的部分功能,它不完全满足你的需求,而且你无法修改一个类(比如这个类是在jar包中),或者你不想动别人的源代码(改了后有背锅的可能),但是你又需要那个有缺陷类,这个时候适配器就闪亮登场了。二、代码结构演示2.1 接口适配器主要思想:把需要的类组合进来2.1.1、目标接口class TargetInterface { void me...原创 2019-11-26 15:53:57 · 73 阅读 · 0 评论 -
创建型模式--工厂方法
1、介绍工厂方法就是对简单工厂的补充,因为简单工厂在创建类的时候,是根据传递的参数来进行创建的,如果参数是class反射来创建还好,如果不是那么会产生大量的if else if elseif 这样的语句,设计模式一个最重要的功能就是减少这个if else。 所以工厂方法应运而生,他就是将属于相同分类的类创建封装到一个工厂接口的子类中去创建。...转载 2019-12-02 10:39:36 · 80 阅读 · 0 评论 -
创建型模式--简单工厂
装载一篇写的非常好的文章点这里1、介绍简单工厂最主要的就是解耦,不是通过自己去new,而是通过工厂类去new。2、代码结构那个转载的文章写得很详细了。3、好处解耦需要大量需要某个类的时候(比如100处),如果那个类需要修改构造方法,那么就需要修改100处。用工厂就很方便。基本上框架都会用这个设计模式...转载 2019-12-02 10:29:25 · 84 阅读 · 0 评论 -
创建型模式-单例模式
单例模式饿汉式package com.hfview.designMode.signle;/** 1. 饿汉式:就是在初始化成员变量的时候就获取实例对象 2. */public class SignleMode { private static SignleMode sm=new SignleMode(); public static SignleM...原创 2018-04-11 10:25:59 · 123 阅读 · 0 评论