
java
freshbin000
默默搬砖
展开
-
设计模式之装饰模式
一个抽象基类,几个继承基类的具体实现类,一个抽象装饰类继承基类,几个装饰类实现抽象装饰类。抽象基类如下:package com.freshbin.pattern.decorate.myexample.component;/** * 抽象基类 * @author freshbin * @date 2019-1-3 17:30:35 */public abstract clas...原创 2019-01-03 19:05:10 · 87 阅读 · 0 评论 -
设计模式之迭代器模式
在需要迭代的对象类中实现迭代器接口,接着在一个迭代对象管理类中把这些需要迭代的对象一个个遍历出来即可。首先设计一个获取迭代对象的接口,然后将需要迭代的对象类实现该接口,再设计一个管理迭代对象的类,最后是一个客户端主类。获取迭代对象的接口:package com.freshbin.pattern.iterator.myexample.iterator;import java.util....原创 2019-01-08 14:47:05 · 122 阅读 · 0 评论 -
设计模式之享元模式
flyWeight也称蝇量模式。首先设计一个接口,再设计一个类实现该接口,再设计一个创建该对象的工厂,最后是客户端主类。接口:package com.freshbin.pattern.flyweight.myexample.order;/** * 订单类 * * @author freshbin * @date 2019年1月15日 下午8:56:33 */public...原创 2019-01-19 10:59:29 · 124 阅读 · 0 评论 -
设计模式之组合模式
首先设计一个能迭代对象的帮助类,再设计一个需要迭代的对象类,最后是客户端主类。迭代帮助类:package com.freshbin.pattern.composite.myexample;import java.util.Iterator;import java.util.Stack;/** * 迭代器 * * @author freshbin * @date 201...原创 2019-01-08 19:53:56 · 136 阅读 · 1 评论 -
设计模式之解释器模式
简单的写了例子,首先是解释器接口,然后是两个实现解释器的类,再设计一个需要解释的类,最后是客户端主类。解释器接口:package com.freshbin.pattern.interpreter.myexample;/** * 解释器接口 * * @author freshbin * @date 2019年1月19日 下午3:30:12 */public interfa...原创 2019-01-19 15:35:54 · 107 阅读 · 0 评论 -
设计模式之中介者模式
场景:玩家发送消息,在聊天室显示。首先设计一个聊天室接口,然后是具体聊天室类实现该接口,接着设计一个用户抽象类,聚合聊天室接口,再设计一个具体用户类继承该抽象类,最后是客户端主类。聊天室接口:package com.freshbin.pattern.mediator.myexample.chat.chatroom;import com.freshbin.pattern.media...原创 2019-01-19 20:21:42 · 137 阅读 · 3 评论 -
设计模式之责任链模式
类图:一个抽象类,里面有一个自身的成员变量和一个设置该变量的方法,以及一个请求方法,两个子类,最后是客户端主类。抽象类代码:package com.freshbin.pattern.chain.myexample;/** * 抽象责任链类 * * @author freshbin * @date 2019年1月14日 下午8:22:08 */public abstr...原创 2019-01-14 20:34:50 · 93 阅读 · 0 评论 -
设计模式之备忘录模式
首先设计一个抽象发起人类,一个具体发起人类继承该抽象类,一个备忘录接口,一个管理者抽象类,一个具体管理者类继承该抽象类,最后是客服端主类。发起人抽象类实现备忘录类,管理者抽象类聚合备忘录类。备忘录类:package com.freshbin.pattern.memento.myexample.memento;/** * 备忘录接口 * * @author freshbin ...原创 2019-01-20 14:52:45 · 127 阅读 · 0 评论 -
设计模式之原型模式
原型模式主要是原型类实现Cloneable接口,拷贝有浅拷贝和深拷贝,如果是深拷贝,则成员变量中有地址引用的也要进行拷贝。浅拷贝原型类: package com.freshbin.pattern.prototype.myexample;import java.io.Serializable;import java.util.ArrayList;import java.util....原创 2019-01-20 15:34:27 · 134 阅读 · 0 评论 -
设计模式之状态模式
首先设计一个状态接口,接口中定义几个行为方法,再设计几个状态实现该接口,接着设计一个管理状态的容器,容器中定义几个行为方法,该行为方法直接使用接口的行为方法,容器中定义一个可以修改状态的方法,最后是客户端主类。状态接口:package com.freshbin.pattern.state.myexample.game;/** * 房间状态接口 * * @author fr...原创 2019-01-09 20:32:27 · 121 阅读 · 0 评论 -
设计模式之建造者模式
场景:画不同的人。我看教程中建造者是一个接口,而我这个例子中,建造者使用了抽象类,因为要实现JPanel,然后是两个子类建造者,再设计一个指挥者类,本来应该在指挥者类中组装建造者的方法,但是由于技术原因,我这只能在子类建造者的paint方法中组装建造者了。最后是客户端主类。建造者抽象类:package com.freshbin.pattern.builder.myexample.pe...原创 2019-01-13 15:56:19 · 140 阅读 · 0 评论 -
设计模式之模板方法
首先设计一个抽象基类,基类中可以有已经实现不允许修改的final方法,有可以需要子类各自实现的方法,也可以有允许子类修改已经实现的方法,再设计几个子类继承该基类,设计一个客户端主类即可。抽象基类:package com.freshbin.pattern.template.game;/** * 游戏抽象类 * * @author freshbin * @date 2019-1...原创 2019-01-07 20:08:21 · 102 阅读 · 0 评论 -
设计模式之单例模式
写了一个饿汉式和一个双重加锁的单例饿汉式代码:package com.freshbin.pattern.singleton;/** * 单例模式 饿汉式 * @author freshbin * @date 2019-1-3 19:44:05 */public class SingletonHunger { private static SingletonHunger s...原创 2019-01-03 20:11:20 · 123 阅读 · 0 评论 -
设计模式之抽象工厂模式
首先设计一个工厂接口,再设计两个具体工厂实现该接口,设计一个生产内容接口,接着设计四个具体生产内容类实现该接口,再设计一个生产工厂类,最后是客户端调用类。代码如下:工厂接口:package com.freshbin.pattern.factory.myexample.gamefactory;import java.util.Map;import com.freshbin.patt...原创 2019-01-04 15:28:19 · 154 阅读 · 0 评论 -
设计模式之命令模式
这个命令模式一写就停不下来了,想着完善功能,结果发现我能一直添加功能进去,于是了一会,发现不能再写了,再写就成为一个点餐小项目了,于是就简单写了点,融合了单例模式。首先设计一个命令抽象类,然后两个具体命令继承该抽象类,再设计一个命令执行对象基类,两个具体执行类继承该基类,接着设计一个invoker负责连接客户类和命令类,再设计一个额外的类加入业务需要,最后是一个主类。下面是具体代码命令抽象...原创 2019-01-05 16:27:13 · 129 阅读 · 0 评论 -
设计模式之适配器模式
首先设计一个目标类,然后设计一个适配器类,再来一个被适配器类,最后是主类。如果适配器类继承了目标类,组合了被适配器类,那么这种称为对象适配器模式。如果适配器类继承了被适配器类,实现了目标接口,那么这种称为类适配器模式。下面是对象适配器的具体代码目标类:package com.freshbin.pattern.adapter.myexample.target;/** * ...原创 2019-01-05 20:49:51 · 115 阅读 · 0 评论 -
设计模式之外观模式
这里用了一个电脑启动的例子,我们开机或者关机的时候,都不需要知道电脑执行了什么操作,我们只要按下电源键就可以了,而电脑自己会在他的内部找到CPU啊,硬盘啊,内存之类的这些硬件设备,然后进行开启或者关闭操作。所以我们需要一个CPU类,内存类,硬盘类,而这些类实现硬件接口,然后再设计一个电脑类,因为要针对接口或抽象编程,所以我们可以设计多一个设备接口,电脑类去实现这个接口,...原创 2019-01-06 11:25:26 · 178 阅读 · 0 评论 -
设计模式之代理模式
场景:群主有禁言和解散群的操作,群管理代理群主可以将群成员禁言,但是不能解散群。先来个类图 群管理代码:package com.freshbin.pattern.proxy.myexample.group;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;impo...原创 2019-01-11 20:27:08 · 128 阅读 · 0 评论 -
设计模式之桥接模式
桥接模式官方类图: 我的例子场景:游戏有不同的英雄,不同的英雄有不同的技能,而且英雄的技能是可以变化的,比如英雄一有技能一,英雄二也可以有技能一。首先设计一个技能接口,两个技能类实现该接口,然后设计一个英雄抽象类,聚合技能接口,在构造函数实例化,设计两个英雄类继承该英雄抽象类,最后是客户端主类。技能接口代码:package com.freshbin.pattern.bri...原创 2019-01-12 21:37:00 · 163 阅读 · 0 评论 -
设计模式之策略模式
写在前言,我这个设计模式系列的blog仅用于加强自己对设计模式的学习印象,大神勿喷,新入行的小朋友也不用照着我这个学,可以去看看写得更加好的一些专业书,比如java大话设计模式,还有那本设计模式圣经。 首先我设计了一个策略接口,然后设计了三种策略实现这个接口,接着就是一个管理策略类的抽象类,用一个具体实现类继承这个抽象类,最后就使用一个主类来写调用这些策略了。代码如下策略接...原创 2019-01-03 14:35:37 · 140 阅读 · 0 评论 -
设计模式之观察者模式
首先设计一个发布者类继承JDK的Observable类,接着设计多个订阅者实现JDK的Observer接口,再来一个主类调用,观察者模式的小例子就完成了,以下是代码:发布者类:package com.freshbin.pattern.observer.subject;import java.util.Observable;/** * 发布者 * @author freshbi...原创 2019-01-03 14:44:18 · 135 阅读 · 0 评论 -
设计模式之访问者模式
场景:男人和女人,玩游戏时有不同的状态。首先设计一个抽象人类,再设计一个男人和女人类继承该抽象类;这两个类当做被访问的元素;再设计一个访问者接口,和一个赢游戏时状态和输游戏时状态实现该接口;接着是一个管理被访问元素的类,最后是客户端主类。 抽象类和被访问元素类:package com.freshbin.pattern.visitor.myexample.element;...原创 2019-01-27 16:34:50 · 132 阅读 · 0 评论