设计模式
糖醋花生
世间一切、为我所用、非我所有
展开
-
单例模式
单例模式的核心作用保证一个类只有一个实例,并且提供一个访问该实例的全局访问点。应用场景例子windows的任务管理器项目中读取配置文件的类,一般只有一个对象数据库的连接池一般也只有一个对象Application也是单例模式实现的具体例子在Spring中,每个Bean默认就是单例的,方便Spring容器管理单例模式属于创建者模式四种单例模式 饿汉式 懒汉式 静态内部类 枚原创 2017-12-10 20:02:39 · 122 阅读 · 0 评论 -
适配器模式
结构性模式被适配的类public class Adaptee {public void request(){System.out.println("可以完成客户请求的需要的功能!");}}//客户需要的接口public interface Target {void handleReq();}public class A原创 2017-12-11 17:19:57 · 105 阅读 · 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 · 133 阅读 · 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 · 136 阅读 · 0 评论 -
代理人模式
public class Singer implements Star{@Overridepublic void meet() {System.out.println("singer.meet");}@Overridepublic void price() {System.out.println("singer.price");}@Overridep原创 2017-12-11 17:26:20 · 298 阅读 · 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 · 128 阅读 · 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 · 106 阅读 · 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 · 126 阅读 · 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 · 132 阅读 · 0 评论 -
设计模式
GOF23 23种设计模式创建型模式单例模式 工厂模式 抽象工厂模式 建造者模式 原型模式结构型模式适配器模式 桥接模式 装饰模式 组合模式 外观模式 享元模式 代理模式行为型模式模板方法模式 命令模式 迭代器模式 观察者模式 中介者模式 备忘录模式 解释器模式 状态模式 策略模式 责任链模式 访问者模式原创 2018-01-06 15:18:12 · 126 阅读 · 0 评论 -
装饰类模式
装饰类通常用于扩展既有功能//抽象类接口public interface Car {void run();}//实体类class CarImpl implements Car{@Overridepublic void run() {System.out.println("汽车跑");}}//装饰类class Fly extends原创 2017-12-11 18:46:26 · 169 阅读 · 0 评论 -
享元模式
享元模式实现FlyweightFacrory享元工厂类创建并管理享元工厂类,享元池一般设计成键值对FlyWeght抽象享元类通常是一个接口或抽象类,声明公共方法,这些方法可以向外界提供对象的内部状态,设置外部状态ConcreteFlyWeight具体享元类为内部状态提供成员变量进行存储UnsharedConcreteFlayWeight非共享享元类不能被共享的子类可原创 2017-12-16 16:25:37 · 132 阅读 · 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 · 123 阅读 · 0 评论 -
广播器模式二
//观察者实现Observer接口public class ObserverA implements Observer {private int myState;@Overridepublic void update(Observable o, Object arg) {myState = ((ConcreteSubject)o).getState();}pub原创 2018-01-06 14:47:21 · 236 阅读 · 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 · 1204 阅读 · 0 评论 -
状态模式
public interface status {void carriedout();}public class comein implements status{@Overridepublic void carriedout() {System.out.println("房间已入住");}}public class goaway imp原创 2018-01-03 17:13:50 · 127 阅读 · 0 评论 -
策略模式
以报价为例,介绍策略模式public interface strategy {double getPrice(double price);}public class newcustomerImpl implements strategy{@Overridepublic double getPrice(double price) {return 0.9*p原创 2018-01-03 17:05:44 · 123 阅读 · 0 评论 -
命令者模式
/** * 真正的命令的执行者 * @author Administrator * */public class Receiver {public void action(){System.out.println("Receiver.action()");}}public interface Command {/*** 这个方法是一个返回结果为空的方原创 2018-01-03 16:56:21 · 183 阅读 · 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 · 126 阅读 · 0 评论 -
迭代器模式
public interface MyIterator {void first(); //将游标指向第一个元素void next(); //将游标指向下一个元素boolean hasNext();//判断是否存在下一个元素boolean isFirst();boolean isLast();Object getCurrentObj(); //获取当前游标指向的对象原创 2017-12-19 22:01:06 · 91 阅读 · 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 · 127 阅读 · 0 评论