Java设计模式
文章平均质量分 70
记录一些常用的设计模式和一些自己对设计模式的见解。
子静静
代码改变命运
展开
-
Java设计模式之策略模式
Java设计模式之策略模式前言 策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。实例 假设当前有2种用户级别,普通用户没有折扣,vip用户有8折优惠,我们来模拟个商品的交易过程。具体代码 首先创建个用户抽象类pu...原创 2018-04-03 22:53:44 · 180 阅读 · 0 评论 -
Java设计模式之观察者模式
Java设计模式之观察者模式前言 观察者模式是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使...原创 2018-04-04 22:34:45 · 204 阅读 · 0 评论 -
Java设计模式之状态模式
Java设计模式之状态模式前言 状态模式,又称状态对象模式(Pattern of Objects for States),状态模式是对象的行为模式。状态模式允许一个对象在其内部状态改变的时候改变其行为。这个对象看上去就像是改变了它的类一样。用投票的场景来模拟 投票规则如下:同一个人只能投一票,其他票作废。public abstract class Abs...原创 2018-04-03 22:37:00 · 208 阅读 · 0 评论 -
Java设计模式之组合模式
Java设计模式之组合模式前言 引用大话设计模式的片段:“当发现需求中是体现部分与整体层次结构时,以及你希望用户可以忽略组合对象与单个对象的不同,统一地使用组合结构中的所有对象时,就应该考虑组合模式了。”下面我们用一个很常见的例子来学习组合模式,扫描文。这个文件可以是文件夹也可以是图片更可以是视频,其实文件夹里面可以有文件夹,图片,视频; 首先创建一个抽象类让文件...原创 2018-03-30 07:32:25 · 162 阅读 · 0 评论 -
Java设计模式之门面模式
Java设计模式之门面模式前言 门面模式也叫外观模式,用一个例子来说什么是门票模式吧。大学入学的流程,我这里尽量把流程简单一点,只要2步即可完成入学。第一步是去教务处交学费,第二步是学务处激活学籍。如果每个要入学的学生都去一个部门一个部门的跑去操作,这样就显得有点不妥。这时候就出现了学生会部门,你是要办入学手续是吧,你直接面向我学生会部门就好啦,不用你每个部门都自己跑去操作一下。在...原创 2018-03-30 20:08:04 · 231 阅读 · 0 评论 -
Java设计模式之代理模式
Java设计模式之代理模式标签(空格分隔): Java设计模式前言 代理模式是对象的结构模式。代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。代理对象是目标对象和客户(需要使用目标对象的对象)之间的沟通桥梁。如果客户不想直接跟目标对象沟通,那么代理模式很适用这个场景。public interface IOrigin { void exe(...原创 2018-03-30 22:02:07 · 265 阅读 · 0 评论 -
Java设计模式之单例模式
Java设计模式之单例模式前言 Java中单例模式有懒汉单例模式,饿汉单例模式,双重检查加锁单例模式,静态内部类单例模式;下面会用具体的代码来介绍他们的优缺点,没有最好的只有最合适自己的,结合自己的业务选择适合自己的单例模式。懒汉单例模式 懒顾名思义需要的时候采取拿。这是典型的以时间换空间的场景;getInstance()方法加锁是防止多线程不安全。publ...原创 2018-03-29 20:36:04 · 170 阅读 · 0 评论 -
Java设计模式之工厂模式
Java设计模式之工厂模式前言 工厂模式,我这里总要讲两种常用的工厂方法模式和抽象工厂模式;我会用我们生活中接触的比较多的车来比较这2种模式的区别。工厂方法模式 这里用宝马和奔驰两种车来模拟场景,假设车需要引擎(engine),离合器(clutch)两种部件组成; 我们首先用工厂来产品这2个部件,通过createEngine(int type)来创建...原创 2018-03-29 20:05:05 · 191 阅读 · 0 评论 -
JAVA 中涉及到的设计模式
1 代理模式 当我们开发中如果已有的方法在使用的时候需要对原有的方法进行改进,此时有两种办法: 1修改原有的方法来适应。这样违反了“对扩展开放,对修改关闭”的原则。2、就是采用一个代理类调用原有的方法,且对产生的结果进行控制。这种方法就是代理模式。下面用代码表示代理的用法: 首先来一个接口:Sourceablepublic interface Sourceable { pu原创 2016-01-26 21:50:54 · 368 阅读 · 1 评论 -
Java设计模式之适配器模式
Java设计模式之适配器模式前言 适配器模式在我们的开发中接触的比较多的。比如一个很常见的场景,现在有个需求A类要实现B接口,因为B接口里的方法有些我用不到,但是我不得不要重写全部方法,这时候你被逼无奈让你用不到的方法为空;如果这时候出现了个抽象类C,让它实现B接口,然后里面的方法全部重写,再让你的A类实现C类这时候你就可以在不留空方法的前提下选择性的去重写你需要重写的方法,我...原创 2018-03-29 19:40:11 · 176 阅读 · 0 评论