java设计模式
可乐煮枸杞
开发工程师
展开
-
单例模式1
1 饿汉式: /** * @author * @version 0.1 * 单例模式:饿汉式 -- 创建时进行实例化 * 1 私有化构造方法; * 2 创建私有实例(static) * 3 创建公共类方法(static)方法输出单例 */ public class Singleton5 { //创建私有实例 pri原创 2017-05-29 20:34:17 · 190 阅读 · 0 评论 -
工厂方法模式
/** * @version 0.1 */ public interface Type { void show(); } /** * @version 0.1 */ public class Circle implements Type { @Override public void show() { System.out.println(原创 2017-06-03 10:39:25 · 193 阅读 · 0 评论 -
代理模式1
/** * 代理模式是用一个代理类对象代替原对象执行原来对象的方法 * 在执行过程中可以根据需要执行相关的其他代码 * @author * @version 0.1 */ public interface Sourceable { void method(); } /** * @author * @version 0.1 */ public class Use原创 2017-06-02 12:18:27 · 140 阅读 · 0 评论 -
中介者模式
/** * 中介者模式是将相互作用的紧耦合的类通过中介者类管理俩个类的相互作用 * 对俩个本应相互依赖的类解耦合,从而达到松耦合的目的 * 本例中使用俩个相互作用的数类Link作为示例 * LinkA与LinkB的num属性在进行赋值的时候相互影响 * 若使用方法实现相互作用时,俩个类相互依赖, * 使用中介者设计模式如下例 * * 创建抽象的中介者类,处理相互作用的LinkA和原创 2017-06-01 22:44:55 · 153 阅读 · 0 评论 -
装饰设计模式1
/** * 装饰设计模式 * 为一个对象动态的添加一些功能 * 原类和装饰类共同实现一个接口,装饰类持有类的对象, * 并在实现接口方法时调用该对象对该接口的实现方法,同时添加新的功能 */ public class Decorator implements Sourceable { private User user; public Decorator(User u原创 2017-06-06 16:43:20 · 190 阅读 · 0 评论 -
组合设计模式2
/** * 在某些情况下,数据呈树形,但是每个树节点节点的类型不一定相同 * 这种情况下可以构建抽象的父类让各节点的类型继承, * 再利用组合设计模式进行构造数据 * @author * @version 0.1 */ abstract class MusicClass { public String name; public ArrayList list;原创 2017-06-01 21:46:35 · 166 阅读 · 0 评论 -
组合设计模式1
/** * 组合设计模式:组合设计模式主要是组装树状的数据, * 当数据拥有同类型的子节点时,可以使用组合设计模式对数据进行组装 * @author * @version 0.1 */ public class TreeNode { private String name; private TreeNode parent; private List childr原创 2017-06-01 21:35:57 · 152 阅读 · 0 评论 -
适配器模式3
/** * 适配器模式 -- 接口的适配器模式 * 当不希望实现某个接口的所有方法时使用接口的适配器模式 * 使用一个抽象类实现接口中的所有方法,在写其他类的时候继承改抽象类 * 同时重写需要的方法,从而避免实现所有的接口方法 */ public abstract class Wrap implements Targetable { @Override public vo原创 2017-06-06 15:22:46 · 192 阅读 · 0 评论 -
适配器模式2
/** * 适配器模式 -- 对象的适配器模式 * 当希望将一个对象(source)转换为s满足一个接口(Targetable)的新对象(adapter)时, * 创建一个类(Adapter)实现接口,该类持有一个原对象(source), * 并在实现方法中调用实例source的方法 */ public class Adapter implements Targetable {原创 2017-06-06 15:15:40 · 175 阅读 · 0 评论 -
建造者模式
/** * 建造者模式是将多个产品集中起来进行管理 */ public class Builder { private List list = new ArrayList(); public List getCircles(int n){ for(int i=0;i<n;i++){ Type circle = new Circle();原创 2017-06-05 10:28:01 · 167 阅读 · 0 评论 -
适配器模式1
/** * 适配器模式 -- 类的适配器模式 * 当希望将一个类(Source)转换为满足一个接口(Targetable)的新的类(Adapter)时, * 新的类继承待适配的类并实现接口 */ public class Adapter extends Source implements Targetable { @Override public void method02原创 2017-06-06 14:50:38 · 170 阅读 · 0 评论 -
抽象工厂模式
/** * @version 0.1 */ public interface Type { void show(); } /** * @version 0.1 */ public class Circle implements Type { @Override public void show() { System.out.println(原创 2017-06-03 11:06:01 · 209 阅读 · 0 评论 -
模板方法模式1
/** * @author * @version 0.1 * 模板设计模式 -- 时间消耗模板 * 使用该模板测试方法的运行时间 */ public abstract class TimeExpendTemplate { //创建抽象方法,在子类中具体实现 public abstract void method(); /** * 创建执原创 2017-05-29 21:27:57 · 192 阅读 · 0 评论 -
外观设计模式1
/** * 外观模式 -- 将多个相互依赖的类的依赖关系放在一个类中 * 避免类相互持有,实现松耦合 */ public class Computer { private CPU cpu; private Memory memory; private Disk disk; public Computer() { this.cpu = new原创 2017-06-07 21:42:57 · 175 阅读 · 0 评论