
韩顺平设计模式
文章平均质量分 89
行云流水Gz
这个作者很懒,什么都没留下…
展开
-
韩顺平设计模式之备忘录模式
目录一、游戏角色状态恢复问题二、传统方案解决游戏角色恢复三、传统的方式的问题分析四、基本介绍五、备忘录模式的原理类图5.1 对原理类图的说明-即(备忘录模式的角色及职责)5.2 代码实现六、游戏角色恢复状态实例6.1 应用实例要求6.2 思路分析和图解(类图)6.3 代码实现七、备忘录模式的注意事项和细节一、游戏角色状态恢复问题游戏角色有攻击力和防御力,在大战 Boss前保存自身的状态(攻击力和防御力),当大战 Boss后攻击力和防御力下降,从备忘录.原创 2021-10-24 16:56:43 · 332 阅读 · 0 评论 -
韩顺平设计模式之中介者模式
一、智能家庭项目智能家庭项目:(1)智能家庭包括各种设备,闹钟、咖啡机、电视机、窗帘 等(2)主人要看电视时,各个设备可以协同工作,自动完成看电视的准备工作,比如流程为:闹铃响起->咖啡机开始做咖啡->窗帘自动落下->电视机开始播放二、传统方案解决智能家庭管理问题三、传统的方式的问题分析(1)当各电器对象有多种状态改变时,相互之间的调用关系会比较复杂(2)各个电器对象彼此联系,你中有我,我中有你,不利于松耦合.(3)各个电器对象之间所传递的消息(..原创 2021-10-11 15:23:47 · 383 阅读 · 0 评论 -
韩顺平设计模式之观察者模式
目录一、天气预报项目需求二、天气预报设计方案 1-普通方案2.1 WeatherData类2.2 代码实现三、观察者模式原理四、观察者模式解决天气预报需求4.1 类图说明4.2 代码实现4.3 观察者模式的好处五、观察者模式在 Jdk应用的源码分析一、天气预报项目需求具体要求如下:(1)气象站可以将每天测量到的温度,湿度,气压等等以公告的形式发布出去(比如发布到自己的网站或第三方)。(2)需要设计开放型 API,便于其他第三方也能接入气象站获取数据。原创 2021-10-11 15:10:57 · 197 阅读 · 0 评论 -
韩顺平设计模式之迭代器模式
目录一、看一个具体的需求二、传统的设计方案(类图)三、传统的方式的问题分析四、基本介绍五、迭代器模式的原理类图六、迭代器模式应用实例七、迭代器模式在 JDK-ArrayList集合应用的源码分析八、迭代器模式的注意事项和细节一、看一个具体的需求编写程序展示一个学校院系结构:需求是这样,要在一个页面中展示出学校的院系组成,一个学校有多个学院,一个学院有多个系。如图:二、传统的设计方案(类图)三、传统的方式的问题分析(1)将学院看做是学校的子类...原创 2021-10-03 23:22:42 · 335 阅读 · 0 评论 -
韩顺平设计模式之访问者模式
目录一、测评系统的需求二、传统方式的问题分析三、基本介绍四、访问者模式的原理类图五、访问者模式应用实例六、访问者模式的注意事项和细节一、测评系统的需求完成测评系统需求(1) 将观众分为男人和女人,对歌手进行测评,当看完某个歌手表演后,得到他们对该歌手不同的评价(评价 有不同的种类,比如 成功、失败 等)(2)传统方案二、传统方式的问题分析(1)如果系统比较小,还是 ok的,但是考虑系统增加越来越多新的功能时,对代码改动较大,违反了 ocp原则,不利于维护。原创 2021-09-24 18:20:36 · 243 阅读 · 0 评论 -
韩顺平设计模式之命令模式
目录一、智能生活项目需求二、基本介绍三、命令模式的原理类图四、命令模式解决智能生活项目五、命令模式在 Spring框架 JdbcTemplate应用的源码分析六、命令模式的注意事项和细节一、智能生活项目需求看一个具体的需求(1) 我们买了一套智能家电,有照明灯、风扇、冰箱、洗衣机,我们只要在手机上安装 app就可以控制对这些家电工作。(2)这些智能家电来自不同的厂家,我们不想针对每一种家电都安装一个 App,分别控制,我们希望只要一个 app就可以控制全部智能家电原创 2021-09-23 18:20:02 · 358 阅读 · 0 评论 -
韩顺平设计模式之模板方法模式
目录一、豆浆制作问题二、基本介绍三、模板方法模式原理类图3.1 原理类图3.2对原理类图的说明-即(模板方法模式的角色及职责)四、模板方法模式解决豆浆制作问题五、模板方法模式的钩子方法六、模板方法模式在 Spring框架应用的源码分析七、模板方法模式的注意事项和细节一、豆浆制作问题编写制作豆浆的程序,说明如下:(1)制作豆浆的流程 选材--->添加配料--->浸泡--->放到豆浆机打碎。(2)通过添加不同的配料,可以制作出不同口味的豆浆.原创 2021-09-23 11:14:54 · 440 阅读 · 0 评论 -
韩顺平设计模式之代理模式
目录一、代理模式(Proxy)基本介绍二、静态代理2.1 基本介绍2.2 应用实例2.3 静态代理优缺点三、动态代理3.1 基本介绍3.2 JDK中生成代理对象的 API3.3 动态代理应用实例四、Cglib代理4.1 基本介绍4.2 Cglib代理模式实现步骤4.3 Cglib代理模式应用实例五、几种常见的代理模式介绍—几种变体一、代理模式(Proxy)基本介绍(1) 代理模式:为一个对象提供一个替身,以控制对这个对象的访问。即通..原创 2021-09-21 01:52:49 · 514 阅读 · 0 评论 -
韩顺平设计模式之享元模式
目录一、展示网站项目需求二、传统方案解决网站展现项目三、传统方案解决网站展现项目-问题分析四、基本介绍五、享元模式的原理类图六、内部状态和外部状态七、享元模式解决网站展现项目八、享元模式在 JDK-Interger的应用源码分析九、享元模式的注意事项和细节一、展示网站项目需求小型的外包项目,给客户 A做一个产品展示网站,客户 A的朋友感觉效果不错,也希望做这样的产品展示网站,但是要求都有些不同:1) 有客户要求以新闻的形式发布2) 有客户人要求以博客的..原创 2021-09-19 13:38:12 · 176 阅读 · 0 评论 -
韩顺平设计模式之外观模式
目录一、影院管理项目二、传统方式解决影院管理三、传统方式解决影院管理问题分析四、基本介绍五、外观模式原理类图六、外观模式解决影院管理6.1 传统方式解决影院管理说明6.2 外观模式应用实例七、外观模式在MyBatis框架应用的源码分析八、外观模式的注意事项和细节一、影院管理项目组建一个家庭影院:DVD播放器、投影仪、自动屏幕、环绕立体声、爆米花机,要求完成使用家庭影院的功能,其过程为:直接用遥控器:统筹各设备开关开爆米花机放下屏幕开投影..原创 2021-09-18 16:37:13 · 373 阅读 · 0 评论 -
韩顺平设计模式之组合模式
目录一、看一个学校院系展示需求二、传统方案解决学校院系展示(类图)三、传统方案解决学校院系展示存在的问题分析四、基本介绍五、组合模式原理类图六、组合模式解决学校院系展示的 应用实例七、组合模式在 JDK集合的源码分析八、组合模式的注意事项和细节一、看一个学校院系展示需求编写程序展示一个学校院系结构:需求是这样,要在一个页面中展示出学校的院系组成,一个学校有多个学院,一个学院有多个系。如图:二、传统方案解决学校院系展示(类图)三、传统方案解决...原创 2021-09-18 16:25:33 · 198 阅读 · 0 评论 -
韩顺平设计模式之装饰者模式
一、星巴克咖啡订单项目(咖啡馆):(1)咖啡种类/单品咖啡:Espresso(意大利浓咖啡)、ShortBlack、LongBlack(美式咖啡)、Decaf(无因咖啡)。(2)调料:Milk、Soy(豆浆)、Chocolate。(3)要求在扩展新的咖啡种类时,具有良好的扩展性、改动方便、维护方便。(4)使用 OO的来计算不同种类咖啡的费用: 客户可以点单品咖啡,也可以单品咖啡+调料组合。二、方案 1-解决星巴克咖啡订单项目三、方案 1-解决星巴克咖啡订单问题分析(1)Dr.原创 2021-09-17 16:29:18 · 482 阅读 · 0 评论 -
韩顺平设计模式之桥接模式
目录一、手机操作问题二、传统方案解决手机操作问题三、传统方案解决手机操作问题分析四、基本介绍五、桥接模式(Bridge)-原理类图六、桥接模式解决手机操作问题七、桥接模式在 JDBC的源码剖析八、桥接模式的注意事项和细节九、常见的应用场景:一、手机操作问题现在对不同手机类型的不同品牌实现操作编程(比如:开机、关机、上网,打电话等),如图:二、传统方案解决手机操作问题传统方法对应的类图三、传统方案解决手机操作问题分析(1)扩展性问题(类爆..原创 2021-09-17 10:24:00 · 167 阅读 · 0 评论 -
韩顺平设计模式之适配器模式
目录一、现实生活中的适配器例子二、基本介绍三、工作原理四、类适配器模式4.1类适配器模式介绍4.2类适配器模式应用实例4.3类适配器模式注意事项和细节五、对象适配器模式5.1对象适配器模式介绍5.2对象适配器模式应用实例5.3对象适配器模式注意事项和细节六、接口适配器模式6.1接口适配器模式介绍6.2接口适配器模式应用实例七、 适配器模式在 SpringMVC框架应用的源码剖析八、适配器模式的注意事项和细节一、现实生活中的适配器例子...原创 2021-09-16 11:02:46 · 276 阅读 · 0 评论 -
韩顺平设计模式之建造者模式
目录一、盖房项目需求二、传统方式解决盖房需求三、传统方式的问题分析四、基本介绍五、建造者模式的四个角色六、建造者模式原理类图七、建造者模式解决盖房需求应用实例八、建造者模式在 JDK的应用和源码分析九、建造者模式的注意事项和细节一、盖房项目需求(1)需要建房子:这一过程为打桩、砌墙、封顶。(2)房子有各种各样的,比如普通房,高楼,别墅,各种房子的过程虽然一样,但是要求不要相同的。(3)请编写程序,完成需求。二、传统方式解决盖房需求(1)思路分析(.原创 2021-09-15 11:52:58 · 378 阅读 · 0 评论 -
韩顺平设计模式之原型模式
目录一、克隆羊问题二、传统方式解决克隆羊问题三、传统的方式的优缺点四、基本介绍五、uml类图六、原型模式解决克隆羊问题的应用实例七、原型模式在 Spring框架中源码分析八、深入讨论-浅拷贝和深拷贝8.1浅拷贝的介绍8.2深拷贝基本介绍九、深拷贝应用实例十、原型模式的注意事项和细节一、克隆羊问题现在有一只羊 tom,姓名为: tom, 年龄为:1,颜色为:白色,请编写程序创建和 tom羊 属性完全相同的 10只羊。二、传统方式解决克隆羊问题.原创 2021-09-14 12:05:57 · 319 阅读 · 0 评论 -
韩顺平设计模式之工厂模式
一、简单工厂模式1.看一个具体的需求看一个披萨的项目:要求便于披萨种类的扩展,要求便于维护。(1)披萨的种类很多(比如 GreekPizz、CheesePizz 等);(2) 披萨的制作有 prepare,bake, cut, box;(3)完成披萨店订购功能。2.使用传统的方式来完成2.1思路分析(类图)编写 OrderPizza.java 去订购需要的各种 Pizza2.2看老师代码的演示public class OrderPizza { //构.原创 2021-09-13 16:41:22 · 512 阅读 · 0 评论 -
韩顺平设计模式之单例模式
一、单例模式介绍所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。比如 Hibernate的 SessionFactory,它充当数据存储源的代理,并负责创建 Session对象。SessionFactory并不是轻量级的,一般情况下,一个项目通常只需要一个 SessionFactory就够,这是就会使用到单例模式。二、单例模式的八种方式(1)饿汉式(静态常量)(2)饿汉式(静态代码块)(原创 2021-09-10 15:30:57 · 509 阅读 · 1 评论 -
韩顺平设计模式之设计模式概述
目录一、设计模式介绍二、设计模式类型一、设计模式介绍(1)设计模式是程序员在面对同类软件工程设计问题所总结出来的有用的经验,模式不是代码,而是某类问题的通用解决方案,设计模式(Design pattern)代表了最佳的实践。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。(2) 设计模式的本质提高 软件的维护性,通用性和扩展性,并降低软件的复杂度。(3)<<设计模式>> 是经典的书,作者是 Erich Gamma、Richard He原创 2021-09-09 18:01:43 · 412 阅读 · 0 评论 -
韩顺平设计模式之UML类图
一、UML基本介绍(1) UML——Unified modeling language UML (统一建模语言),是一种用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路的结果。(2) UML本身是一套符号的规定,就像数学符号和化学符号一样,这些符号用于描述软件模型中的各个元素和他们之间的关系,比如类、接口、实现、泛化、依赖、组合、聚合等,如右图:(3) 使用 UML来建模,常用的工具有 Rational Rose , 也可以使用一些插件来建模。二..原创 2021-09-07 16:39:50 · 262 阅读 · 0 评论 -
韩顺平设计模式之设计模式的七大原则
目录一、设计模式的目的二、设计模式的七大原则1.单一职责原则1.1.基本介绍1.2.应用实例1.3单一职责原则注意事项和细节2.接口隔离原则2.1.基本介绍2.2.应用实例2.3.应传统方法的问题和使用接口隔离原则改进3.依赖倒转(倒置)原则4.里氏替换原则5.开闭原则6迪米特法则7.合成复用原则一、设计模式的目的1.代码重用性2.可读性3.可拓展性(即:当需要增加新的功能时,非常的方便,称为可维护性)4.可靠性(即:当我们增.原创 2021-09-07 15:03:18 · 248 阅读 · 0 评论