设计模式
糖醋花生
世间一切、为我所用、非我所有
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
单例模式
单例模式的核心作用 保证一个类只有一个实例,并且提供一个访问该实例的全局访问点。 应用场景例子 windows的任务管理器项目中读取配置文件的类,一般只有一个对象数据库的连接池一般也只有一个对象Application也是单例模式实现的具体例子在Spring中,每个Bean默认就是单例的,方便Spring容器管理 单例模式属于创建者模式 四种单例模式 饿汉式 懒汉式 静态内部类 枚原创 2017-12-10 20:02:39 · 167 阅读 · 0 评论 -
适配器模式
结构性模式 被适配的类 public class Adaptee { public void request(){ System.out.println("可以完成客户请求的需要的功能!"); } } //客户需要的接口 public interface Target { void handleReq(); } public class A原创 2017-12-11 17:19:57 · 138 阅读 · 0 评论 -
创建者模式
//轨道舱 class OrbitalModule{ private String name; public OrbitalModule(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { th原创 2017-12-11 16:49:36 · 169 阅读 · 0 评论 -
原型克隆模式
//浅复制 public class Sheep implements Cloneable,Serializable { private String sname; private Date birthday; public Sheep() {} public Sheep(String sname, Date birthday) { super(); this.原创 2017-12-11 17:03:46 · 175 阅读 · 0 评论 -
代理人模式
public class Singer implements Star{ @Override public void meet() { System.out.println("singer.meet"); } @Override public void price() { System.out.println("singer.price"); } @Override p原创 2017-12-11 17:26:20 · 335 阅读 · 0 评论 -
桥接模式
再多继承的情景下使用 public interface Brand { void sale(); } class lenvo implements Brand{ public void sale() { System.out.println("销售联想电脑"); } } class hp implements Brand{ public void sale()原创 2017-12-11 17:47:19 · 163 阅读 · 0 评论 -
组合模式
/** * 组合模式 */ public interface AbstractFile { void killFile(); } class ImageFile implements AbstractFile{ private String name; public ImageFile(String name) { this.name = name; } pu原创 2017-12-11 17:56:16 · 146 阅读 · 0 评论 -
模板方法模式
模板方法模式,又称钩子函数 public abstract class banktemplate { public void takeNumber(){ System.out.println("取号排队"); } public abstract void doSomething(); public void evaluation() { System.out.printl原创 2018-01-03 17:09:39 · 168 阅读 · 0 评论 -
备忘录模式
/** * 源发器类 * @author Administrator * */ public class Emp { private String ename; private int age; private double salary; //进行备忘操作,并返回备忘录对象 public EmpMemento memento(){ return new Emp原创 2018-01-06 14:59:56 · 166 阅读 · 0 评论 -
设计模式
GOF23 23种设计模式 创建型模式 单例模式 工厂模式 抽象工厂模式 建造者模式 原型模式 结构型模式 适配器模式 桥接模式 装饰模式 组合模式 外观模式 享元模式 代理模式 行为型模式 模板方法模式 命令模式 迭代器模式 观察者模式 中介者模式 备忘录模式 解释器模式 状态模式 策略模式 责任链模式 访问者模式原创 2018-01-06 15:18:12 · 169 阅读 · 0 评论 -
装饰类模式
装饰类通常用于扩展既有功能 //抽象类接口 public interface Car { void run(); } //实体类 class CarImpl implements Car{ @Override public void run() { System.out.println("汽车跑"); } } //装饰类 class Fly extends原创 2017-12-11 18:46:26 · 214 阅读 · 0 评论 -
享元模式
享元模式实现 FlyweightFacrory享元工厂类 创建并管理享元工厂类,享元池一般设计成键值对 FlyWeght抽象享元类 通常是一个接口或抽象类,声明公共方法,这些方法可以向外界提供对象的内部状态,设置外部状态 ConcreteFlyWeight具体享元类 为内部状态提供成员变量进行存储 UnsharedConcreteFlayWeight非共享享元类 不能被共享的子类可原创 2017-12-16 16:25:37 · 165 阅读 · 0 评论 -
工厂模式
工厂模式 简单工厂模式 工厂方法模式 抽象工厂模式 简单工厂模式 举例 知道汽车品牌,生产对应的汽车 public class CarFactory { public static Car createCar(String type){ if("奥迪".equals(type)){ return new Audi(); }else if("比亚迪".equals(t原创 2017-12-10 20:33:15 · 162 阅读 · 0 评论 -
广播器模式二
//观察者实现Observer接口 public class ObserverA implements Observer { private int myState; @Override public void update(Observable o, Object arg) { myState = ((ConcreteSubject)o).getState(); } pub原创 2018-01-06 14:47:21 · 270 阅读 · 0 评论 -
广播模式
public interface Observer { void update(Subject subject); } public class ObserverA implements Observer{ private int myState;//myState需要跟目标的state保持一致 public int getMyState() { return myState;原创 2018-01-04 20:56:23 · 1273 阅读 · 0 评论 -
状态模式
public interface status { void carriedout(); } public class comein implements status{ @Override public void carriedout() { System.out.println("房间已入住"); } } public class goaway imp原创 2018-01-03 17:13:50 · 167 阅读 · 0 评论 -
策略模式
以报价为例,介绍策略模式 public interface strategy { double getPrice(double price); } public class newcustomerImpl implements strategy{ @Override public double getPrice(double price) { return 0.9*p原创 2018-01-03 17:05:44 · 159 阅读 · 0 评论 -
命令者模式
/** * 真正的命令的执行者 * @author Administrator * */ public class Receiver { public void action(){ System.out.println("Receiver.action()"); } } public interface Command { /** * 这个方法是一个返回结果为空的方原创 2018-01-03 16:56:21 · 222 阅读 · 0 评论 -
中介模式
//中介者接口 public interface Mediator { void register(String name,Department department); void comment(String name); } //中介者实体类 public class President implements Mediator{ private Map map = n原创 2017-12-20 21:49:46 · 166 阅读 · 0 评论 -
迭代器模式
public interface MyIterator { void first(); //将游标指向第一个元素 void next(); //将游标指向下一个元素 boolean hasNext();//判断是否存在下一个元素 boolean isFirst(); boolean isLast(); Object getCurrentObj(); //获取当前游标指向的对象原创 2017-12-19 22:01:06 · 134 阅读 · 0 评论 -
责任链模式
public class staff { private String name; private Integer days; private String reason; public staff() {} public staff(String name, Integer days, String reason) { super(); this.name = name;原创 2017-12-19 21:56:32 · 171 阅读 · 0 评论
分享