![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
Carmen_W
这个作者很懒,什么都没留下…
展开
-
适配器模式(Adapter)——尚学堂笔记
package com.bjsxt.adapter; /** * 被适配的类 * (相当于例子中的,PS/2键盘) * @author Administrator * */ public class Adaptee { public void request(){ System.out.println("可以完成客户请求的需要的功能!"); } } packa...原创 2019-01-27 22:53:09 · 188 阅读 · 0 评论 -
建造者模式——尚学堂笔记
构建“尚学堂牌”神舟飞船的示例 : package com.bjsxt.builder; /** * 尚学堂牌宇宙飞船 * @author 尚学堂高淇 www.sxt.cn * */ public class AirShip { private OrbitalModule orbitalModule; //轨道舱 private Engine engine; //发动机 ...原创 2019-01-22 23:09:58 · 160 阅读 · 0 评论 -
工厂模式——尚学堂笔记
不使用简单工厂的情况 : package com.bjsxt.factory.simplefactory; public interface Car { void run(); } package com.bjsxt.factory.simplefactory; public class Byd implements Car { @Override public void run...原创 2019-01-22 23:06:59 · 159 阅读 · 0 评论 -
单例模式——尚学堂笔记
单例模式 饿汉式: package com.bjsxt.singleton; /** * 测试饿汉式单例模式 * @author 尚学堂高淇 www.sxt.cn * */ public class SingletonDemo1 { //类初始化时,立即加载这个对象(没有延时加载的优势)。加载类时,天然的是线程安全的! private static SingletonDemo...原创 2019-01-22 22:59:22 · 128 阅读 · 0 评论 -
备忘录模式(memento)——尚学堂笔记
package com.bjsxt.memento; /** * 源发器类 * @author Administrator * */ public class Emp { private String ename; private int age; private double salary; //进行备忘操作,并返回备忘录对象 public EmpMement...原创 2019-01-28 11:43:52 · 158 阅读 · 0 评论 -
观察者模式(Observer)——尚学堂笔记
package com.bjsxt.observer; import java.util.ArrayList; import java.util.List; public class Subject { protected List<Observer> list = new ArrayList<Observer>(); public void reg...原创 2019-01-28 11:43:37 · 182 阅读 · 0 评论 -
模板方法模式(template mathod)状态模式(state)——尚学堂笔记
1. 模板方法模式(template mathod) package com.bjsxt.templateMethod; public abstract class BankTemplateMethod { //具体方法 public void takeNumber(){ System.out.println("取号排队"); } public abstract void ...原创 2019-01-28 11:43:20 · 230 阅读 · 0 评论 -
策略模式(strategy)
package com.bjsxt.strategy; /** * 实现起来比较容易,符合一般开发人员的思路 * 假如,类型特别多,算法比较复杂时,整个条件语句的代码就变得很长,难于维护。 * 如果有新增类型,就需要频繁的修改此处的代码! * 不符合开闭原则! * @author Administrator * */ public class TestStrategy { ...原创 2019-01-28 11:33:34 · 130 阅读 · 0 评论 -
迭代器模式(iterator)中介者模式模式(Mediator)——尚学堂笔记
1. 迭代器模式(iterator) package com.bjsxt.iterator; /** * 自定义的迭代器接口 * @author Administrator * */ public interface MyIterator { void first(); //将游标指向第一个元素 void next(); //将游标指向下一个元素 boolean hasN...原创 2019-01-27 23:18:14 · 195 阅读 · 0 评论 -
责任链模式(chain of responibilit)——尚学堂笔记
package com.bjsxt.chainOfResp; /** * 封装请假的基本信息 * @author Administrator * */ public class LeaveRequest { private String empName; private int leaveDays; private String reason; public...原创 2019-01-27 23:13:25 · 201 阅读 · 0 评论 -
享元模式(FlyWeight)——尚学堂笔记
享元模式实现的UML图: package com.bjsxt.flyweight; /** * 享元类 * @author Administrator * */ public interface ChessFlyWeight { void setColor(String c); String getColor(); void display(Coordinate c); }...原创 2019-01-27 23:10:37 · 137 阅读 · 0 评论 -
外观模式(facade)——尚学堂笔记
基本案例: – 注册公司流程(不使用外观模式) : package com.bjsxt.facade; public interface 工商局 { void checkName(); //核名 } class 海淀区工商局 implements 工商局 { @Override public void checkName() { System.out.println(...原创 2019-01-27 23:08:03 · 128 阅读 · 0 评论 -
装饰模式(decorator)——尚学堂笔记
简单案例说明 : package com.bjsxt.decorator; /** * 抽象构件 * @author Administrator * */ public interface ICar { void move(); } //ConcreteComponent 具体构件角色(真实对象) class Car implements ICar { //真正的要装饰的对...原创 2019-01-27 23:04:29 · 149 阅读 · 0 评论 -
组合模式(composite)
使用组合模式,模拟杀毒软件架构设计: package com.bjsxt.composite; /** * 抽象组件 * @author Administrator * */ public interface Component { void operation(); } //叶子组件 interface Leaf extends Component { } //容器组件 in...原创 2019-01-27 23:02:16 · 129 阅读 · 0 评论 -
桥接模式(bridge)——尚学堂笔记
未使用桥接模式: package com.bjsxt.bridge; public interface Computer { void sale(); } class Desktop implements Computer { @Override public void sale() { System.out.println("销售台式机!"); } } class Lapto...原创 2019-01-27 23:00:11 · 167 阅读 · 0 评论 -
代理模式 (Proxy pattern)——尚学堂笔记
静态代理 (static proxy): package com.bjsxt.proxy.staticProxy; public interface Star { /** * 面谈 */ void confer(); /** * 签合同 */ void signContract(); /** * 订票 */ void bookTicket(); /*...原创 2019-01-27 22:57:32 · 224 阅读 · 0 评论 -
原型模式(prototype)——尚学堂笔记
package com.bjsxt.prototype; import java.io.Serializable; import java.util.Date; public class Sheep implements Cloneable,Serializable { //1997,英国的克隆羊,多利! private String sname; private Date bir...原创 2019-01-22 23:13:23 · 186 阅读 · 0 评论