设计模式
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 · 210 阅读 · 0 评论 -
建造者模式——尚学堂笔记
构建“尚学堂牌”神舟飞船的示例 :package com.bjsxt.builder;/** * 尚学堂牌宇宙飞船 * @author 尚学堂高淇 www.sxt.cn * */public class AirShip { private OrbitalModule orbitalModule; //轨道舱 private Engine engine; //发动机 ...原创 2019-01-22 23:09:58 · 193 阅读 · 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 · 193 阅读 · 0 评论 -
单例模式——尚学堂笔记
单例模式饿汉式:package com.bjsxt.singleton;/** * 测试饿汉式单例模式 * @author 尚学堂高淇 www.sxt.cn * */public class SingletonDemo1 { //类初始化时,立即加载这个对象(没有延时加载的优势)。加载类时,天然的是线程安全的! private static SingletonDemo...原创 2019-01-22 22:59:22 · 150 阅读 · 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 · 186 阅读 · 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 · 218 阅读 · 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 · 276 阅读 · 0 评论 -
策略模式(strategy)
package com.bjsxt.strategy;/** * 实现起来比较容易,符合一般开发人员的思路 * 假如,类型特别多,算法比较复杂时,整个条件语句的代码就变得很长,难于维护。 * 如果有新增类型,就需要频繁的修改此处的代码! * 不符合开闭原则! * @author Administrator * */public class TestStrategy {...原创 2019-01-28 11:33:34 · 161 阅读 · 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 · 231 阅读 · 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 · 223 阅读 · 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 · 162 阅读 · 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 · 159 阅读 · 0 评论 -
装饰模式(decorator)——尚学堂笔记
简单案例说明 :package com.bjsxt.decorator;/** * 抽象构件 * @author Administrator * */public interface ICar { void move();}//ConcreteComponent 具体构件角色(真实对象)class Car implements ICar { //真正的要装饰的对...原创 2019-01-27 23:04:29 · 172 阅读 · 0 评论 -
组合模式(composite)
使用组合模式,模拟杀毒软件架构设计:package com.bjsxt.composite;/** * 抽象组件 * @author Administrator * */public interface Component { void operation();}//叶子组件interface Leaf extends Component {}//容器组件in...原创 2019-01-27 23:02:16 · 161 阅读 · 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 · 200 阅读 · 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 · 258 阅读 · 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 · 220 阅读 · 0 评论