
设计模式
设计模式理解
学而不思则忘
一切都可以
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
责任链模式——设计模式
抽象类 public abstract class Handler { protected Handler successor; public void setSuccessor(Handler handler) { this.successor = handler; } public abstract void handleRequest(int request); } 处理者类 public class ConcreteHandler1 e.原创 2021-11-28 22:10:28 · 90 阅读 · 0 评论 -
桥接模式——设计模式
抽象类 public abstract class Shape { protected Color color; //standard constructors abstract public String draw(); } 接口 public interface Color { String fill(); } 实现接口的类 public class Blue implements Color{ @Override public String f.原创 2021-11-28 21:12:00 · 160 阅读 · 0 评论 -
备忘录模式——设计模式
备忘录实体 public class TextWindow { private StringBuilder currentText; public TextWindow() { this.currentText = new StringBuilder(); } public void addText(String text) { currentText.append(text); } public TextWindo.原创 2021-11-28 20:02:22 · 96 阅读 · 0 评论 -
观察者模式——设计模式
实例 1. 抽象被观察者 abstract class Subject { private Vector<Observer> obs = new Vector<>(); public void addObserver(Observer ob) { this.obs.add(ob); } public void delObserver(Observer ob) { this.obs.remove(ob.原创 2021-11-21 16:04:45 · 322 阅读 · 0 评论 -
建造者模式——设计模式
Builder模式 在Computer 中创建一个静态内部类 Builder,然后将Computer 中的参数都复制到Builder类中。 在Computer中创建一个private的构造函数,参数为Builder类型 在Builder中创建一个public的构造函数,参数为Computer中必填的那些参数,cpu 和ram。 在Builder中创建设置函数,对Computer中那些可选参数进行赋值,返回值为Builder类型的实例 在Builder中创建一个build()方法,在其中构建Computer原创 2021-11-04 15:30:23 · 171 阅读 · 0 评论 -
原型模式——设计模式
用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。 实例 克隆羊 实现了Cloneable接口中的clone()方法: public class Sheep implements Cloneable{ private String name; private int age; private String color; public Sheep(String name, int age, String color) { this.nam原创 2021-10-28 11:10:57 · 105 阅读 · 0 评论 -
简单工厂和工厂方法——设计模式
工厂方法和简单工厂对比 工厂方法:定义一个用户创建对象的接口,让子类去决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。 以下面运算功能的实现为例子: 工厂方法 简单工厂 可以看出,**简单工厂模式最大有点在于工厂类中做出了必要的逻辑判断,可以根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了具体产品的依赖。**就如计算器,让客户端不管使用哪个示例,只要把+给工厂,工厂会自动给出相应的实例,客户端只需要去做运算即可,不同的实例做不同的运算。 但是,有一个麻烦,如果说需要再添加一种运原创 2021-09-12 22:01:51 · 113 阅读 · 0 评论 -
代理模式——设计模式
代理模式 为其它对象提供一个代理以控制对这个对象的访问。 Subject类:定义了RrealSubject和Proxy的公用接口,这样就可以在任何使用RealSubject的地方都可以使用Proxy abstract class Subject { public abstract void request(); } RealSubject类:定义Proxy所代表的真是实体 public class RealSubject extends Subject { @Override p原创 2021-09-12 21:59:45 · 77 阅读 · 0 评论 -
装饰模式——设计模式
动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更加灵活。 ## 源码 抽象构件角色 public interface Component { public void operation(); } 具体构件角色 public class ConcreteComponent implements Component { @Override public void operation() { // 写相关的业务代码原创 2021-09-11 17:04:57 · 202 阅读 · 0 评论 -
策略模式——设计模式
1. 策略模式 策略模式是一种定义一系列算法的方法。所有这些算法完成的都是相同的工作,只是实现不同,它可以以相同的方式调用所有的算法,减少了各种算法类与使用算法类之间的耦合。 策列模式的Strategy(CashSuper)类层次为Context(CashContext)定义了一系列可以重用的算法。继承有助于抽离这些算法中的公共功能。 2. 实例 实现一个商场收银系统,UML类图如下: CashContext类 public class CashContext { private final Ca原创 2021-09-06 20:52:02 · 196 阅读 · 0 评论