![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java设计模式
文章平均质量分 92
java设计模式,解决开发中的一些需求
野生java研究僧
离开那些世俗繁绕,只为这一刻清净
展开
-
14.访问模式
访问模式1 . 测评系统的需求2 . 传统方式完成测评系统3 . 访问者模式基本介绍4 . 访问者模式的原理类图5.访问者模式实现6. 访问者模式的注意事项和细节1 . 测评系统的需求完成测评系统需求将观众分为男人和女人,对歌手进行测评,当看完某个歌手表演后,得到他们对该歌手不同的评价(评价有不同的种类,比如成功、失败等)2 . 传统方式完成测评系统传统方式的问题分析如果系统比较小,还是ok的,但是考虑系统增加越来越多新的功能时,对代码改动较大,违反了ocp原则, 不利于维护传统方式的扩展性原创 2021-10-03 00:05:41 · 353 阅读 · 0 评论 -
15.命令模式
命令模式1 . 智能生活项目需求2 . 命令模式基本介绍3 . 命令模式原理类图4 . 命令模式解决智能生活项目5 . Spring JdbcTemplate6 . 命令模式的注意事项1 . 智能生活项目需求我们买了一套智能家电, 有照明灯、 风扇、 冰箱、 洗衣机, 我们只要在手机上安装 app 就可以控制对这些家电工作。这些智能家电来自不同的厂家, 我们不想针对每一种家电都安装一个 App, 分别控制, 我们希望只要一个 app 就可以控制全部智能家电。要实现一个 app 控制所有智能家电的需原创 2021-10-01 23:56:29 · 83 阅读 · 0 评论 -
14.模板方法模式
1、豆浆制作问题编写制作豆浆的程序, 说明如下:1 . 制作豆浆的流程:选材—>添加配料—>浸泡—>放到豆浆机打碎2 . 通过添加不同的配料, 可以制作出不同口味的豆浆3. 选材、 浸泡和放到豆浆机打碎这几个步骤对于制作每种口味的豆浆都是一样的4 . 请使用模板方法模式完成 (说明:因为模板方法模式,比较简单,很容易就想到这个方案, 因此就直接使用,不再使用传统的方案来引出模板方法模式)2、模板方法模式基本介绍模板方法模式(Template Method Pattern原创 2021-09-26 00:51:26 · 91 阅读 · 0 评论 -
13.代理模式
代理模式proxy1.代理模式的基本介绍2.静态代码模式3.动态代理模式4.Cglib 代理模式5.代理模式(Proxy)的变体1.代理模式的基本介绍代理模式:为一个对象提供一个替身,以控制对这个对象的访问。 即通过代理对象访问目标对象。代理对象的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。被代理的对象可以是远程对象、 创建开销大的对象或需要安全控制的对象代理模式有不同的形式,主要有三种:静态代理、 动态代理 (JDK代理、接口代理)和 Cglib代理 (可以在原创 2021-07-27 22:35:53 · 250 阅读 · 1 评论 -
12.享元模式
享元模式1.展示网站项目需求2.传统方案解决网站展现项目3.享元模式基本介绍4.享元模式的原理类图5.内部状态和外部状态6.享元模式解决网站展现项目7.JDK Interger 源码分析8.享元模式的注意事项1.展示网站项目需求小型的外包项目,给客户A做一个产品展示网站, 客户A的朋友感觉效果不错,也希望做这样产品展示网站,但是要求都有些不同:有客户要求以新闻的形式发布客户人要求以博客的形式发布有客户希望以微信公众号的形式发布2.传统方案解决网站展现项目方案描述直接复制粘贴一份,然后原创 2021-07-13 01:44:43 · 79 阅读 · 1 评论 -
11.外观模式
外观模式1.影院管理项目2.传统方式解决影院管理3.外观模式基本介绍4.外观模式解决影院管理5.mybatis外观模式设计案例6.外观模式的注意事项1.影院管理项目组建一个家庭影院:DVD 播放器、 投影仪、 自动屏幕、 环绕立体声、 爆米花机,要求完成使用家庭影院的功能, 其过程为:直接用遥控器统筹各设备开关开爆米花机放下屏幕开投影仪开音响开 DVD, 选 DVD去拿爆米花调暗灯光播放观影结束后, 关闭各种设备2.传统方式解决影院管理每个设备都对应于一个类,导致客户端使用时,原创 2021-07-09 20:46:36 · 83 阅读 · 0 评论 -
10.组合模式
组合模式1.学校院系展示需求2.传统方案解决学校院系展示3.组合模式基本介绍4.组合模式的原理类图5.组合模式解决的问题6.组合模式解决学校院系展示7.JDK HashMap 组合模式8.组合模式的注意事项1.学校院系展示需求看一个学校院系展示需求编写程序展示一个学校院系结构:需求是这样,要在一个页面中展示出学校的院系组成,一个学校有多个学院,一个学院有多个系。 如2.传统方案解决学校院系展示传统方案解决学校院系展示存在的问题分析将学院看做是学校的子类,系是学院的子类,这样实际上是站在组织大原创 2021-07-08 23:19:17 · 94 阅读 · 0 评论 -
9.装饰着模式
装饰着模式1.星巴克咖啡订单项目2.装饰者模式定义3.装饰者模式解决咖啡订单4.JDK IO流使用的装饰者设计模式1.星巴克咖啡订单项目咖啡种类/单品咖啡:Espresso(意大利浓咖啡)、 ShortBlack、 LongBlack(美式咖啡)、 Decaf(无因咖啡)调料: Milk、 Soy(豆浆)、 Chocolate要求在扩展新的咖啡种类时,具有良好的扩展性、改动方便、维护方便使用OO的来计算不同种类咖啡的费用:客户可以点单品咖啡,也可以单品咖啡 + 调料组合方案1:解决星巴克咖原创 2021-07-08 16:20:15 · 69 阅读 · 0 评论 -
8.桥接模式
桥接模式1.手机问题2.传统方案解决手机问题3. 桥接模式(Bridge)-基本介绍4. 桥接模式(Bridge)-原理类图5.桥接模式解决手机问题6.JDBC 源码解析7. 桥接模式的注意事项8.桥接模式应用场景1.手机问题现在对不同手机类型、不同品牌的手机实现操作编程(比如:开机、关机、上网,打电话等)2.传统方案解决手机问题传统方案解决手机操作问题分析扩展性问题(类爆炸), 如果我们再增加手机的样式(旋转式),就需要增加各个品牌手机的类,同样如果我们增加一个手机品牌,也要在各个手机样式原创 2021-07-08 02:03:46 · 158 阅读 · 1 评论 -
7.适配器模式
适配器模式1. 适配器模式基本介绍2.类适配器模式3.对象适配器模式5.接口适配器模式6.SpringMVC 源码7.适配器模式的注意事项1. 适配器模式基本介绍适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。适配器的别名为包装器(Wrapper),适配器模式属于结构型模式主要分为三类:类适配器模式、对象适配器模式、接口适配器模式适配器模式工作原理:适配器模式:将一个类的接口转原创 2021-07-07 23:06:32 · 128 阅读 · 1 评论 -
6.建造者模式
建造者模式1.盖房项目实际需求2.建造者模式基本介绍3.建造者模式的四个角色4.建造者模式解决盖房问题5.JDK StringBuilder1.盖房项目实际需求需要建房子:这一过程为打桩、 砌墙、封顶房子有各种各样的,比如普通房,高楼,别墅,各种房子的过程虽然一样,但是各自实现的细节不同代码实现:AbstractHouse:房子的抽象父类,指定建造房子的规范,以及建造房子的具体流程/** 建造者模式 :传统方式 * @author compass * @version 1.0 * @原创 2021-07-07 17:11:21 · 92 阅读 · 1 评论 -
5.原型模式
原型模式1.克隆羊问题2.原型模式的介绍4、原型模式代码示例1.克隆羊问题克隆羊问题描述现在有一只羊tom, 姓名为: tom,年龄为: 1, 颜色为:白色,请编写程序创建和tom羊属性完全相同的10只羊传统模式解决克隆羊问题代码实现:Sheep:绵羊类/** 原型模式: 创建一个绵羊对象 然后克隆该对象10个 * @author compass * @version 1.0 * @date 2021-07-06 23:28 */public class Sheep {原创 2021-07-07 03:08:17 · 61 阅读 · 1 评论 -
4.工厂模式
简单工厂模式1.简单工厂模式2.工厂方法模式3.抽象工厂模式4.JDK Calendar5.工厂模式小结1.简单工厂模式简单工厂模式的实际需求看一个披萨的项目:要便于披萨种类的扩展,要便于维护披萨的种类很多(比如 GreekPizz、CheesePizz 等)披萨的制作有 prepare、bake、cut、box完成披萨店订购功能Pizza: 抽象父类/** 将Pizza 做成抽象类 * @author compass * @version 1.0 * @date 2021原创 2021-07-06 22:26:14 · 105 阅读 · 1 评论 -
3.单例模式
@TOC设计模式概述设计模式的层次第 1 层: 刚开始学编程不久, 听说过什么是设计模式第 2 层: 有很长时间的编程经验, 自己写了很多代码, 其中用到了设计模式, 但是自己却不知道第 3 层: 学习过了设计模式, 发现自己已经在使用了, 并且发现了一些新的模式挺好用的第 4 层: 阅读了很多别人写的源码和框架, 在其中看到别人设计模式, 并且能够领会设计模式的精妙和带来的好处。第 5 层: 代码写着写着, 自己都没有意识到使用了设计模式, 并且熟练的写了出来。设计模式介绍设计模式原创 2021-07-06 14:15:30 · 101 阅读 · 0 评论 -
2.UML类图
UML类图1.StartUML的使用UML 基本介绍UML——Unified modeling language UML(统一建模语言),是一种用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路的结果UML本身是一套符号的规定,就像数学符号和化学符号一样,这些符号用于描述软件模型中的各个元素和他们之间的关系,比如类、接口、实现、泛化、依赖、组合、聚合等,如下图使用UML来建模,常用的工具有 RationalRose , 也可以使用一些插件来建模1.StartUML的使用原创 2021-07-06 01:28:35 · 282 阅读 · 0 评论 -
1.设计模式的七大原则
图解java设计模式1.简介 1.单一职责原则 2.接口隔离原则 3.依赖倒转原则 4.里氏替换原则5.开闭原则6.迪米特法则7.合成复用原则1.简介通过本文章,你可以了解到常用的设计模式,本文的设计模式都是通过java语言进行讲解的,这也是我个人的一个学习笔记,设计模式以及数据结构和算法可能实际开发中用不到,但是这是程序员的基本功,这也就是你看框架源代码的时候头晕,看不懂,不知道别人到底写的什么玩意儿。那么你该静下心来好好学习基础知识了,记住一句话,罗马不少一天建成的,万丈高楼平地其,一切都以基础为准原创 2021-07-04 22:08:19 · 134 阅读 · 2 评论 -
java设计模式(工厂模式)
工厂模式1.工厂模式介绍:2.具体代码实现:不了解设计模式,就无法读懂框架源代码,无法读懂框架源代码,就只会只会使用,无法写出高质量的代码,做了几年还在做crud操作,工资不见长,因为框架底层用了大量的设计模式。比如工厂类,责任链,适配器模式,代理模式,等等的一系列设计模式。1.工厂模式介绍:工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通原创 2021-03-25 01:45:32 · 249 阅读 · 1 评论