07 2021 档案
摘要:一、职责链模式介绍 二、职责链模式引入 需求: UML类图: 代码实现(Java): //请求类 public class PurchaseRequest { private int type = 0; //请求类型 private float price = 0.0f; //请求金额 privat
阅读全文
摘要:一、策略模式介绍 二、策略模式引入 需求: UML类图: 代码实现(Java): public interface FlyBehavior { void fly(); // 子类具体实现 } public class NoFlyBehavior implements FlyBehavior{ @Ov
阅读全文
摘要:一、状态模式介绍 二、状态模式引入 需求: UML类图: 代码实现(Java): /** * 状态抽象类 */ public abstract class State { // 扣除积分 - 50 public abstract void deductMoney(); // 是否抽中奖品 publi
阅读全文
摘要:一、解释器模式介绍 二、解释器模式引入 需求: UML类图: 代码实现(Java): import java.util.HashMap; /** * 抽象类表达式,通过HashMap 键值对, 可以获取到变量的值 */ public abstract class Expression { // a
阅读全文
摘要:一、备忘录模式介绍 二、备忘录模式引入 需求: UML类图: 代码实现(Java): public class Memento { //攻击力 private int vit; //防御力 private int def; public Memento(int vit, int def) { sup
阅读全文
摘要:一、中介者模式介绍 二、中介者模式引入 需求: UML类图: 代码实现(Java): //同事抽象类 public abstract class Colleague { private Mediator mediator; public String name; public Colleague(M
阅读全文
摘要:一、观察者模式介绍 核心:观察者模式主要用于1:N的通知。当一个对象(目标对象Subject或Objservable)的状态变化时,他需要及时告知一系列对象(观察者对象,Observer),令他们做出响应。 二、观察者模式引入 需求: UML类图: 代码实现(Java): //观察者接口,由观察者来
阅读全文
摘要:一、迭代器模式介绍 二、迭代器模式引入 需求: UML类图: 代码实现(Java): import java.util.function.Consumer; /** * An iterator over a collection. {@code Iterator} takes the place o
阅读全文
摘要:一、访问者模式介绍 二、访问者模式引入 需求: UML类图: 代码实现(Java): public abstract class Action { //得到男性 的测评 public abstract void getManResult(Man man); //得到女的 测评 public abst
阅读全文
摘要:一、命令模式介绍 二、命令模式引入 需求: UML类图: 代码实现(Java): //创建命令接口 public interface Command { //执行动作(操作) public void execute(); //撤销动作(操作) public void undo(); } public
阅读全文
摘要:一、模板模式介绍 二、模板模式引入 UML类图: 代码实现(Java): //抽象类,表示豆浆 public abstract class SoyaMilk { //模板方法, make , 模板方法可以做成final , 不让子类去覆盖. final void make() { select();
阅读全文
摘要:一、代理模式介绍 二、代理模式引入 1.静态代理 代码实现(Java): //接口 public interface ITeacherDao { void teach(); // 授课的方法 } public class TeacherDao implements ITeacherDao { @Ov
阅读全文
摘要:一、递归介绍 二、递归案例(迷宫回溯问题) 代码实现(Java): public class MiGong { public static void main(String[] args) { // 先创建一个二维数组,模拟迷宫 // 地图 int[][] map = new int[8][7];
阅读全文
摘要:一、栈的介绍 二、栈的引入 数组模拟栈代码实现(Java): import java.util.Scanner; /** * 1.使用数组来模拟栈 * 2.定义一个top来表示栈,初始化为-1 * 3.入栈的操作,当有数据加入到栈时,top++;stack[top]=data; * 4.出栈的操作,
阅读全文
摘要:一、享元模式介绍 二、享元模式引入 需求: 传统方式: 享元模式: 代码实现(Java): public class User { private String name; public User(String name) { super(); this.name = name; } public
阅读全文
摘要:一、外观模式介绍 二、外观模式引入 需求: 传统方式: 外观模式: UML类图: 代码实现(Java): //剧场 public class TheaterLight { private static TheaterLight instance = new TheaterLight(); publi
阅读全文
摘要:一、集合的框架体系(主要的两大类): 二、List接口下的实现类 1.ArrayList: 2.Vector: 3.LinkedList: 三、Set接口下的实现类 1.HashSet: 四、Map接口下的实现类 1.HashMap: 2.HashTable: 3.Properties: 五、开发中
阅读全文
摘要:一、组合模式介绍 二、组合模式引入 需求: UML类图: 代码实现(Java): public abstract class OrganizationComponent { private String name; // 名字 private String des; // 说明 protected
阅读全文
摘要:一、装饰者模式介绍 二、装饰者模式引入 需求: 代码实现(Java): public abstract class Drink { public String des; // 描述 private float price = 0.0f; public String getDes() { return
阅读全文
摘要:一、桥接模式介绍 二、桥接模式引入 需求: 传统方案: 桥接模式: 代码实现(Java): //接口 public interface Brand { void open(); void close(); void call(); } public class Vivo implements Bra
阅读全文
摘要:一、适配器模式介绍 二、适配器模式引入 需求: 1.类适配器模式 介绍: 代码实现(Java): //被适配的类 public class Voltage220V { //输出220V的电压 public int output220V() { int src = 220; System.out.pr
阅读全文
摘要:一、建造者模式介绍 UML类图: 二、建造者模式引入. 需求: 1.传统方式: "产品"和"创建产品"的过程封装在一起。 代码实现(Java): public abstract class AbstractHouse { //打地基 public abstract void buildBasic()
阅读全文
摘要:一、原型模式介绍 二、原型模式引入 需求: 传统方式UML类图: 代码实现(Java): public class Sheep { private String name; private int age; private String color; public Sheep(String name
阅读全文
摘要:一、简单工厂模式 基本介绍: 需求: 简单工厂模式UML类图: 代码实现(Java) //将Pizza 类做成抽象 public abstract class Pizza { protected String name; //名字 //准备原材料, 不同的披萨不一样,因此,我们做成抽象方法 publ
阅读全文
摘要:一、单例模式介绍 二、单例模式引入 1. 饿汉式(静态常量) 可用,不推荐 代码实现(Java) public class SingletonTest01 { public static void main(String[] args) { //测试 Singleton instance1 = Si
阅读全文
摘要:一、队列介绍 二、队列引入 队列代码实现(Java) import java.util.Scanner; public class ArrayQueueDemo { public static void main(String[] args) { //测试一把 //创建一个队列 ArrayQueue
阅读全文
摘要:一、稀疏数组介绍 二、稀疏数组引入 二维数组转稀疏数组、稀疏数组转二维数组:代码实现(Java) public class SparseArray { public static void main(String[] args) { // 创建一个原始的二维数组 11 * 11 // 0: 表示没有
阅读全文
摘要:一、数据结构和算法内容介绍 1.数据结构和算法的重要性 2.数据结构和算法的关系 3.数据结构的分类
阅读全文
摘要:一、IDEA如何使用PlantUML 参考链接:https://jingyan.baidu.com/article/363872ec9ad59b2e4aa16f72.html 二、IDEA中PlantUML类图语法和功能 参考链接:https://plantuml.com/zh/class-diag
阅读全文