![](https://img-blog.csdnimg.cn/a8c4f5bee76d4cc5aed6653d5be78d03.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
设计模式
文章平均质量分 75
1、基础知识
2、代码案例
3、开发实战
Mr.Aholic
全栈开发工程师 主java后端。喜欢旅游,已经旅游的城市地点:河南老家、广州、佛山、深圳、上海、山西、长沙、张家界、武汉、新疆-乌鲁木齐、新疆-吐鲁番、云南-昆明,郑州等。备考明年的 高级系统分析师 和 系统架构师【2022届毕业生---软件工程专业】
展开
-
常用设计模式介绍~~~ Java实现 【概念+案例+代码】
常用设计模式介绍~~~ Java实现 【概念+案例+代码】原创 2023-06-03 15:49:41 · 1675 阅读 · 25 评论 -
【十六】设计模式~~~行为型模式~~~策略模式(Java)
设计模式~~~行为型模式~~~策略模式(Java)原创 2023-06-02 13:42:23 · 1018 阅读 · 0 评论 -
【十五】设计模式~~~行为型模式~~~状态模式(Java)
设计模式~~~行为型模式~~~状态模式(Java)原创 2023-06-01 13:49:58 · 1068 阅读 · 0 评论 -
【十四】设计模式~~~行为型模式~~~观察者模式(Java)
设计模式~~~行为型模式~~~中介者模式(Java)原创 2023-06-01 13:29:39 · 1089 阅读 · 0 评论 -
【十三】设计模式~~~行为型模式~~~中介者模式(Java)
设计模式~~~行为型模式~~~中介者模式(Java)原创 2023-06-01 13:10:57 · 870 阅读 · 0 评论 -
【十二】设计模式~~~行为型模式~~~命令模式(Java)
设计模式~~~行为型模式~~~命令模式(Java)原创 2023-06-01 12:27:19 · 1266 阅读 · 1 评论 -
【十一】设计模式~~~结构型模式~~~代理模式(Java)
设计模式~~~结构型模式~~~代理模式(Java)原创 2023-06-01 11:10:11 · 1093 阅读 · 0 评论 -
【十】设计模式~~~结构型模式~~~享元模式(Java)
设计模式~~~结构型模式~~~享元模式(Java)原创 2023-05-31 20:07:29 · 1221 阅读 · 0 评论 -
【九】设计模式~~~结构型模式~~~外观模式(Java)
设计模式~~~结构型模式~~~外观模式(Java)原创 2023-05-30 11:48:26 · 1070 阅读 · 1 评论 -
【八】设计模式~~~结构型模式~~~装饰模式(Java)
设计模式~~~结构型模式~~~装饰模式(Java)原创 2023-05-30 11:06:08 · 955 阅读 · 0 评论 -
【七】设计模式~~~结构型模式~~~桥接模式(Java)
设计模式~~~结构型模式~~~桥接模式(Java)原创 2023-05-30 10:40:33 · 1151 阅读 · 0 评论 -
【六】设计模式~~~结构型模式~~~适配器模式(Java)
设计模式~~~结构型模式~~~适配器模式(Java)原创 2023-05-29 19:03:11 · 1179 阅读 · 0 评论 -
【五】设计模式~~~创建型模式~~~单例模式(Java)
设计模式~~~创建型模式~~~单例模式(Java)原创 2023-05-28 15:41:51 · 1787 阅读 · 0 评论 -
【四】设计模式~~~创建型模式~~~建造者模式(Java)
设计模式~~~创建型模式~~~建造者模式(Java)原创 2023-05-26 18:17:20 · 1664 阅读 · 1 评论 -
【三】设计模式~~~创建型模式~~~抽象工厂模式(Java)
设计模式~~~创建型模式~~~抽象工厂模式(Java)原创 2023-05-26 10:36:03 · 1603 阅读 · 0 评论 -
【二】设计模式~~~创建型模式~~~工厂方法模式(Java)
设计模式~~~创建型模式~~~工厂方法模式(Java)原创 2023-05-14 14:10:08 · 479 阅读 · 1 评论 -
【一】设计模式~~~创建型模式~~~简单工厂模式(Java)
设计模式~~~创建型模式~~~简单工厂模式(Java)原创 2023-05-11 19:13:55 · 820 阅读 · 0 评论 -
静态代理和动态代理的区别以及实现过程
静态代理和动态代理的区别以及实现过程原创 2023-02-15 23:00:42 · 627 阅读 · 0 评论 -
设计模式-------------静态/动态代理模式(结构型设计模式)
文章目录1、代理模式定义2、应用场景3、UML类图4、通用代码实现5、结果6、实际例子(静态代理)7、动态代理生成对象的步骤8、代理模式的优缺点9、静态代理和动态代理的区别1、代理模式定义为其他对象提供一种代理,控制对对这个对象的访问。(你去找租房子、不是直接找房东。而是通过中介所给你提供房东的信息、然后你再去找对应的房东)2、应用场景租房中介婚姻介绍中介找工作(打工人通过中介去电子厂打螺丝)…3、UML类图抽象主题角色:声明真实主题和代理主题的共同接口方法真实主题角色:被代理类原创 2021-12-18 21:17:36 · 662 阅读 · 2 评论 -
设计模式-----------工厂模式之抽象工厂模式(创建型)
1、抽象工厂模式定义提供一个创建一系列相关或相互依赖对象的接口、无须指定它们具体的类。产品族:一个品牌下的商品。比如海尔企业下的:海尔电视、海尔空调、海尔洗衣机…产品等级:同一个商品不同的企业生产。比如 海尔电视、格力电视、美的电视…(理解:比如说,海尔电器这个企业可以生产、海尔电视机、海尔空调。格力这个企业可以生产海尔电视机、海尔空调。这个时候可以定义一个电视的抽象接口和空调的抽象接口。让每个企业生产的对应产品对应不同的抽象产品。然后再来一个格力工厂、专门生产格力企业下的产品。海尔工厂、专门生产原创 2021-12-14 15:21:52 · 1237 阅读 · 4 评论 -
设计模式-------------工厂模式之工厂方法模式(创建型)
文章目录1、工厂方法模式定义2、应用场景3、UML类图4、结果5、实际例子6、工厂方法模式的优缺点1、工厂方法模式定义叫做多态性工厂方法模式,定义一个创建对象的接口,由实现这个接口的类来决定实例化哪个类。把类的实例化推迟到子类中进行。(比如说,鞋子工厂专门造鞋子,帽子工厂专门造帽子,如果要造裤子、就新建一个制造裤子的工厂来专门制造裤子。简单工厂是一个工厂即造鞋子又造帽子。很容易导致臃肿)2、应用场景创建对象需要大量重复的代码客户端不管具体产品怎样创建、实现等细节一个类通过子类来指定创建哪个对象原创 2021-12-14 12:08:37 · 608 阅读 · 1 评论 -
设计模式----------工厂模式之简单工厂模式(创建型)
文章目录1、简单工厂模式定义2、应用场景3、简单工厂模式的UML类图4、通用代码实现5、运行结果6、实际例子(使用简单工厂模式实现课程的录制)7、通过反射实现对象的创建1、简单工厂模式定义也称为静态工厂方法模式有一个具体的工厂类,可以生成多个不同的产品。2、应用场景产品种类较少,客户端只需要传入工厂类的参数,不需要关心产品的创建过程。3、简单工厂模式的UML类图简单工厂:是核心,负责实现产品的创建(内部逻辑的实现)抽象产品:所有创建对象的父类、负责描述所有实例共有的公共接口具体产品:创原创 2021-12-14 10:34:09 · 1075 阅读 · 2 评论 -
设计模式常用的UML图------类图
关系UML将事物之间的联系归纳为6种,对应响应的图形关联定义:表示拥有的关系,具有方向性,一个类单向访问一个类,为单向关联。两个类可以相互访问,为双向关联。聚合定义:整体与部分的关系。组合定义:整体与部分的关系,比聚合严格。某个实体组合成另外一个实体,两者具有相同的生命周期。泛化(继承)定义:表示一个更泛化的元素与另一个更具体的元素之间的关系。实现定义:类与接口的关系,类实现接口依赖定义:一个类的改动会影响另外一个类类图一种静态模型类型,类图表示类、接口和它们之间的原创 2021-12-14 03:30:00 · 722 阅读 · 5 评论 -
设计模式七大原则
文章目录1、设计模式目的2、设计模式七大原则1 、单一职责原则2 、接口隔离原则3 、依赖倒置原则4 、里氏替换原则5 、开闭原则6 、迪米特法则7 、合成复用原则1、设计模式目的代码重用性可读性可扩展性可靠性使程序呈现高内聚,低耦合的特性2、设计模式七大原则1 、单一职责原则一个类应该只负责一项职责。2 、接口隔离原则一个类对另外一个类的依赖应该建立在最小的接口上。3 、依赖倒置原则高层模块不应该依赖低层模块,二者都应该依赖其抽象抽象不应该依赖细节,细节应该依赖抽原创 2021-11-30 18:37:33 · 213 阅读 · 1 评论 -
设计一个网上书店,该系统中所有的计算机类图书(ComputerBook)每本都有10%的折扣,所有的语言类图书(LanguageBook)每本都有2元的折扣,小说类图书(NovelBook)每100元
现使用策略模式来设计该系统,绘制类图并编程实现UML类图书籍package com.zheng;public class Book { private double price;// 价格 private Discount discount;// 维持一个对抽象折扣类的引用 // 调用折扣类的折扣计算方法 public double getPrice() { return discount.calculate(this.price); } public void setPri原创 2021-01-19 16:09:43 · 3337 阅读 · 0 评论 -
某系统提供了用户信息操作模块,用户可以修改自己的各项信息。为了使操作过程更加人性化,现使用备忘录模式对系统进行改进,使得用户在进行了错误操作之后可以恢复到操作之前的状态。用户信息中包含账号、密码、电话
绘制UML类图信息的初始化建立备忘录备忘录的创建过程,就是通过构造函数的形式将一个类中的属性赋值给另外一个类里边的属性。实现原始数据的保存。在恢复原始数据时,通过创建另外一个类的对象,通过对象调用属性。然后赋值给这边类里的属性。package com.zheng;public class Originator { // 原始数据 private String name; // 姓名 private String pwd; // 密码 private double num; // 电话原创 2021-01-19 16:00:09 · 2217 阅读 · 2 评论 -
某OA系统需要提供一个假条审批的模块,如果员工请假天数小于3天,主任可以审批该请假条;如果员工请假天数大于等于3天,小于10天,经理可以审批;如果员工请假天数大于等于10天,小于30天,总经理可以审批
某OA系统需要提供一个假条审批的模块,如果员工请假天数小于3天,主任可以审批该请假条;如果员工请假天数大于等于3天,小于10天,经理可以审批;如果员工请假天数大于等于10天,小于30天,总经理可以审批;如果超过30天,总经理也不能审批,提示相应的拒绝信息。要求绘制相应的类图并使用Java语言编程模拟实现。UML类图package com.zheng;public abstract class Approver { protected Approver successor;//定义后继对象 p原创 2021-01-16 12:06:39 · 3498 阅读 · 1 评论 -
某家咖啡店在卖咖啡时可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算总费用
某家咖啡店在卖咖啡时可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算总费用,咖啡店所供应的咖啡机配料的种类和价格如下表所示:咖啡 价格/杯(元) 配料 价格/份(元)蓝山咖啡(BlueCoffee) 8 牛奶(Milk) 2拿铁咖啡(NatieCoffee) 10 橙汁(Orange) 3试用装饰者模式为该咖啡店设计一个程序以实现计算费用的功能,输出每种饮料的详细信息描述及花费。要求绘制类图并使用Java语言模拟实现。uml类图:抽象类package com.packag原创 2021-01-15 20:56:34 · 4849 阅读 · 1 评论 -
在电脑主机(MainFrame)中只需要按下主机的开机按钮(on()),即可调用其它硬件设备和软件的启动方法,如内存(Memory)的自检(check())、CPU的运行(run())、硬盘(Hard
在电脑主机(MainFrame)中只需要按下主机的开机按钮(on()),即可调用其它硬件设备和软件的启动方法,如内存(Memory)的自检(check())、CPU的运行(run())、硬盘(HardDisk)的读取(read())、操作系统(OS)的载入(load())等,如果某一过程发生错误则电脑启动失败。使用外观模式模拟该过程,绘制类图并使用Java语言模拟实现。UML类图package com.zheng;public class MainFrame { private Memory m原创 2021-01-15 20:45:14 · 7650 阅读 · 3 评论 -
现有一个接口DataOperation定义了排序方法sort(int[])和查找方法search(int[],int),已知类QuickSort的quickSort(int[])方法实现了快速排序算法
现有一个接口DataOperation定义了排序方法sort(int[])和查找方法search(int[],int),已知类QuickSort的quickSort(int[])方法实现了快速排序算法,类BinarySearch的binarySearch(int[],int)方法实现了二分查找算法。现使用适配器模式设计一个系统,在不修改源代码的情况下将类QuickSort和类BinarySearch的方法适配到DataOperation接口中。绘制类图并编程实现。UML类图源码:package co原创 2021-01-14 18:44:23 · 8753 阅读 · 10 评论 -
一个电器工厂可以生产多种类型的电器,如海尔工厂可以生产海尔电视机、海尔空调等,TCL工厂可以生产TCL电视机,TCL空调等,相同品牌的电器构成一个产品族,而相同类型的电器构成了一个产品等级结构,现使用
一个电器工厂可以生产多种类型的电器,如海尔工厂可以生产海尔电视机、海尔空调等,TCL工厂可以生产TCL电视机,TCL空调等,相同品牌的电器构成一个产品族,而相同类型的电器构成了一个产品等级结构,现使用抽象工厂模拟该场景。要求使用相关的工具绘制UML类图并严格按照类图的设计编写程序实现。uml类图源码:package 抽象工厂实现电子器件;public interface DianQiFactory { public Kongtiao createkongtiao();//抽象工厂 publi原创 2021-01-14 18:31:44 · 3753 阅读 · 2 评论 -
使用工厂方法模式设计能够实现包含加法(+)、减法(-)、乘法(*)、除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果。要求使用相关的工具绘制UML类图并严格按照类图的设计编写程序实
2、使用工厂方法模式设计能够实现包含加法(+)、减法(-)、乘法(*)、除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果。要求使用相关的工具绘制UML类图并严格按照类图的设计编写程序实现。抽象产品接口:package gongchang;public interface type { double play(double num1,double num2);}具体产品:package gongchang;public class Chen implements原创 2021-01-14 17:55:54 · 1196 阅读 · 3 评论 -
1、使用简单工厂模式设计能够实现包含加法(+)、减法(-)、乘法(*)、除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果。要求使用相关的工具绘制UML类图并严格按照类图的设计编写程
1、使用简单工厂模式设计能够实现包含加法(+)、减法(-)、乘法(*)、除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果。要求使用相关的工具绘制UML类图并严格按照类图的设计编写程序实现。UML类图源码:抽象产品接口package bao_1;public interface Act { public double yunsuan(double a,double b);}具体产品:package bao_1;public class Chen impleme原创 2021-01-14 17:18:55 · 1814 阅读 · 2 评论