
设计模式
2013302580255
这个作者很懒,什么都没留下…
展开
-
设计模式之单例设计模式
singleton:保证一个类只有一个实例,并提供访问它的全局访问点一.应用场景:1.windows的task manager就是典型的单例模式。在打开一个任务管理器的情况下没办法打开第二个任务管理器。 2.回收站,操作系统的文件系统(和日志文件对比) 3.项目的配置文件,没必要反复加载 4.网站的计数器 5.数据库连接池 6.应用程序的日志,共享的日志文件一般用一个实例操作,方便追加原创 2017-08-19 11:08:21 · 146 阅读 · 0 评论 -
设计模式之迭代器模式
使用场景 实现代码/** * 自定义的迭代器接口 * @author Administrator * */public interface MyIterator { void first(); //将游标指向第一个元素 void next(); //将游标指向下一个元素 boolean hasNext();//判断是否存在下一个元素 boolea原创 2017-08-21 09:56:48 · 126 阅读 · 0 评论 -
设计模式之中介者模式
mediator结构图实现代码//同事类的接口public interface Department { void selfAction(); //做本部门的事情 void outAction(); //向总经理发出申请}public class Development implements Department { private Mediator m; //持有中原创 2017-08-21 11:12:50 · 156 阅读 · 0 评论 -
设计模式之命令模式
类图代码实现public interface Command { /** * 这个方法是一个返回结果为空的方法。 * 实际项目中,可以根据需求设计多个不同的方法 */ void execute();}class ConcreteCommand implements Command { private Receiver receiver; //原创 2017-08-21 11:44:48 · 122 阅读 · 0 评论 -
设计模式之解释器模式,访问者模式
解释器模式 访问者模式原创 2017-08-21 11:53:02 · 155 阅读 · 0 评论 -
设计模式之策略模式
不使用策略模式之前:/** * 实现起来比较容易,符合一般开发人员的思路 * 假如,类型特别多,算法比较复杂时,整个条件语句的代码就变得很长,难于维护。 * 如果有新增类型,就需要频繁的修改此处的代码! * 不符合开闭原则! * @author Administrator * */public class TestStrategy { public double getPri原创 2017-08-21 12:36:29 · 154 阅读 · 0 评论 -
设计模式之模板方法模式
public abstract class BankTemplateMethod { //具体方法 public void takeNumber(){ System.out.println("取号排队"); } public abstract void transact(); //办理具体的业务 //钩子方法 public void evalua原创 2017-08-21 13:07:48 · 162 阅读 · 0 评论 -
设计模式之状态模式
实现代码public interface State { void handle();}/** * 空闲状态 * @author Administrator * */public class FreeState implements State { @Override public void handle() { System.out.printl原创 2017-08-21 16:05:47 · 147 阅读 · 0 评论 -
设计模式之观察者模式
实现代码(推的方式)目标对象public class Subject { protected List<Observer> list = new ArrayList<Observer>(); public void registerObserver(Observer obs){ list.add(obs); } public void removeObse原创 2017-08-21 16:59:14 · 642 阅读 · 0 评论 -
设计模式之责任链模式
实现代码public abstract class Leader { protected String name; protected Leader nextLeader; //责任链上的后继对象 public Leader(String name) { super(); this.name = name; } //设定责任链上原创 2017-08-20 23:27:35 · 135 阅读 · 0 评论 -
设计模式之享元模式
flyweight设计模式 享元模式的实现 //抽象享元类public interface ChessFlyWeight { void setColor(String c); String getColor(); void display(Coordinate c);}//具体享元类class ConcreteChess implements ChessFlyWei原创 2017-08-20 22:41:41 · 169 阅读 · 0 评论 -
设计模式之外观模式
迪米特法则: 一个软件实体应当尽可能少的与其他实体发生作用 外观模式也叫做门面模式,实现了迪米特法则,为子系统提供统一的入口,封装子系统的复杂性方便客户端的调用 解析xml的工具类。。。 很多工具类,使用频率最高的设计模式原创 2017-08-20 12:23:32 · 150 阅读 · 0 评论 -
设计模式之工厂模式
一.工厂模式的介绍工厂模式分三种: 1.简单工厂模式 2.工厂方法模式 3.抽象工厂模式 工厂模式的本质是实例化对象,实现创建者和调用者的分离 面向对象设计的基本原则: 本质都是分工原则二.简单工厂模式 也叫静态工厂模式,因为工厂类一般使用静态方法。 实现类client02只需要调用工厂类和实现类的接口 只能通过修改代码的方式进行扩展,不满足OLP原则三.工厂方法模式 客户端原创 2017-08-19 15:10:52 · 220 阅读 · 0 评论 -
设计模式之建造者模式
构建和装配的解耦 和工厂模式结合,builder从工厂模式拿到产品,在director里面进行组装 一般开发中并不多见原创 2017-08-19 15:44:29 · 251 阅读 · 0 评论 -
设计模式之原型模式
一 prototype二 浅拷贝obj对象的clone方法 继承Cloneable接口(空接口)是规范public class Sheep implements Cloneable,Serializable { //1997,英国的克隆羊,多利! private String sname; private Date birthday; @Override prot原创 2017-08-19 17:02:03 · 194 阅读 · 0 评论 -
设计模式之适配器模式
一 adapter uml图 二 类适配器public class Adapter extends Adaptee implements Target { @Override public void handleReq() { super.request(); } }三 对象适配器public class Adapter2 implements原创 2017-08-19 17:31:22 · 251 阅读 · 0 评论 -
设计模式之代理模式
一 proxy 二 动态代理public class StarHandler implements InvocationHandler { Star realStar; public StarHandler(Star realStar) { this.realStar = realStar; } public Object invoke(Object原创 2017-08-19 18:04:48 · 166 阅读 · 0 评论 -
代理模式之桥接模式
一 使用场景 二 类图原创 2017-08-19 20:13:44 · 490 阅读 · 0 评论 -
设计模式之组合模式
组合模式的使用场景:把整体和部分的关系用树形结构来表示,从而使客户端可以使用统一的方式处理部分对象构件和整体(由于实现统一的抽象构件接口cmponent)组合模式的核心:1.抽象构件角色(component) 定义叶子和容器的共同点 2.容器构件角色(composite) 有字节点和容器特点 3.叶子构件角色(leaf) 没有子节点实现代码://componentpublic interfac原创 2017-08-20 11:28:41 · 158 阅读 · 0 评论 -
设计模式之装饰模式
核心动态地为对象增加新的功能 装饰模式是一种用于代替继承的技术,无需通过继承增加子类就能扩展对象的新功能,使用对象的关联关系代替继承关系,更加灵活,同时避免继承体系的膨胀(比如车有潜水和人工智能两个子类,人工智能的潜水车如果不使用装饰模式就要再写一个子类,使用装饰模式使用对象的组合实现,更加灵活也避免了写很多子类)UML图 1.component 是真实对象和装饰对象共同的接口,这样装饰对象可以原创 2017-08-20 12:08:15 · 152 阅读 · 0 评论 -
设计模式之备忘录模式
代码实现/** * 源发器类 * @author Administrator * */public class Emp { private String ename; private int age; private double salary; //进行备忘操作,并返回备忘录对象 public EmpMemento memento(){原创 2017-08-21 17:20:02 · 196 阅读 · 0 评论