09 2023 档案

摘要:访问者模式 案例引入 要求 1.将观众分为男生和女生,对歌手进行评价,当看完某个歌手表演后,对于歌手有不同的评价(评价的类别,有成功,失败等)。 传统方式实现思路 创建一个Person类,其有两个子类,分别是Man和WoMan,使用if else分支,去判断一个歌手的评价,成功对应成功分支,失败对应 阅读全文
posted @ 2023-09-30 23:00 长名06 阅读(18) 评论(0) 推荐(0) 编辑
摘要:命令模式 案例引入 要求 1.买了一套智能家电,有照明灯,风扇,冰箱,洗衣机,我们只要在手机上安装app就可以控制这些家电工作。 2.这些智能家电来自不同的厂家,不想针对每一种家电都安装一个app,分别控制,希望使用一个app就可以控制全部的智能家电。 3.要实现,一个app控制所有智能家电的需求, 阅读全文
posted @ 2023-09-28 23:13 长名06 阅读(63) 评论(0) 推荐(0) 编辑
摘要:模板模式 案例引入 制作豆浆问题 要求: 1.制作豆浆流程 选材->添加配料->浸泡->放到豆浆机打碎。 2.通过添加不同配料,可以制作出不同口味的豆浆。 3.选材,浸泡和放到豆浆机打碎这些步骤对于制作每种口味的豆浆都是一样的。 4.请使用模板模式,完成。(因为模板方法模式,简单,就直接写了) 基本 阅读全文
posted @ 2023-09-27 00:41 长名06 阅读(54) 评论(0) 推荐(0) 编辑
摘要:代理模式 基本介绍 1.代理模式,为目标对象提供一个替身,以控制这个对象的访问。即通过代理对象访问目标对象,这样做的好处是,可以在目标对象功能的基础上,增加额外的操作,即扩展目标对象的功能。 2.目标对象(被代理对象)可以是远程对象,创建开销大的对象或者需要安全控制的对象。 3.代理模式有不同的三种 阅读全文
posted @ 2023-09-24 23:39 长名06 阅读(69) 评论(0) 推荐(0) 编辑
摘要:享元模式 案例引入 小型的外包项目,给客户A做一个展示网站,客户A的朋友感觉效果不错,也希望做这样的产品展示网站,但是要求都有些不同。 1.有客户要求以新闻的形式发布。 2.有客户要求以博客的形式发布。 3.有客户希望以微信公众号的形式发布。 传统方案实现案例 1.直接赋值粘贴一份,根据不同客户,进 阅读全文
posted @ 2023-09-23 00:23 长名06 阅读(50) 评论(0) 推荐(0) 编辑
摘要:外观模式 案例引入 要求,组建一个家庭影院,DVD播放器,投影仪,自动屏幕,环绕立体声,爆米花机,实现家庭影院的功能。过程为,直接用遥控器,统筹各设备开关,开爆米花机,放下屏幕,开投影仪,开音响,开dvd,选dvd,取爆米花,调暗灯光,播放电影,观影结束后,关闭各设备。 传统方式实现案例 无具体代码 阅读全文
posted @ 2023-09-20 23:51 长名06 阅读(62) 评论(0) 推荐(0) 编辑
摘要:组合模式 案例引入 编写程序,展示学校院系结构,要求在一个页面中展示出学院的院系组成,一个学院有几个学院,一个学院有几个系。如下图 传统方案及问题分析 传统方案 系 extends 学院 extends 学校 问题分析 1.将学院看成学校的子类,系是学院的子类,这样实际上是按照组织大小进行划分层次的 阅读全文
posted @ 2023-09-18 23:31 长名06 阅读(70) 评论(0) 推荐(0) 编辑
摘要:装饰者模式 咖啡案例引入 1.咖啡种类,有意大利咖啡(Espresso),ShortBlack,美式咖啡(LongBlack),无因咖啡(Decaf)。 2.调料,Milk,Soy(豆浆),Chocolate(巧克力)。 3.要求再扩展新的咖啡种类时,具有良好的扩展性,改动方便,维护方便。 4.客户 阅读全文
posted @ 2023-09-17 00:48 长名06 阅读(88) 评论(0) 推荐(0) 编辑
摘要:桥接模式 案例引入 对不同的手机类型和不同品牌实现操作(如开机,关机,上网,打电话等)。 如手机的类型有折叠式,直立式等。手机品牌有华为,小米,vivo等。 传统方式实现案例UML图 传统方式问题分析 1.扩展性问题,如果再增加手机的样式,就需要增加各个品牌手机的类,同样我们如果增加一个手机品牌,也 阅读全文
posted @ 2023-09-14 23:56 长名06 阅读(78) 评论(0) 推荐(1) 编辑
摘要:适配器模式 基本介绍 1.适配器模式(Adapter Pattern)将某个类的接口(方法)转换成客户期望的另一个接口(方法)表示,主要目的是兼容性,让原本因为方法不匹配的,不能一起工作的两个类可以协同工作。别名叫包装器(Wrapper)。 2.适配器模式属于结构模式。 3.主要有三种形式,类适配器 阅读全文
posted @ 2023-09-13 00:24 长名06 阅读(84) 评论(0) 推荐(0) 编辑
摘要:建造者模式 案例引入 1.建房子,过程分为打桩,砌墙,封顶。 2.房子有各种各样的,比如普通房,高楼,别墅,各种房子要求不一样,但是建造过程是一样的。 传统方式实现 代码如下 public abstract class AbstractHouse { public abstract void bui 阅读全文
posted @ 2023-09-10 23:06 长名06 阅读(74) 评论(0) 推荐(0) 编辑
摘要:原型模式 案例引入 克隆羊问题 有一只羊,姓名为tom,年龄为1,颜色为白色,编写程序创建和tom羊属性完全相同的羊。 传统方式解决 代码实现 public class Sheep { private String name; private int age; private String colo 阅读全文
posted @ 2023-09-08 22:57 长名06 阅读(56) 评论(0) 推荐(0) 编辑
摘要:工厂设计模式 简单(静态)工厂模式 基本介绍 1.简答工厂模式,属于创建型模式,是工厂模式的一种。简单工厂模式是由一个工厂对象决定创建哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单,最实用的模式。 2.简单工厂模式:定义了一个创建对象的类,由这个类来封装实例化对象的行为。 3.在软件开发中, 阅读全文
posted @ 2023-09-06 23:52 长名06 阅读(106) 评论(0) 推荐(0) 编辑
摘要:单例设计模式 基本介绍 类的单例设计模式,就是采取一定的方式保证在整个的软件系统中,对某个类只能有一个对象实例存在,且类提供一个静态方法,用以获取该对象。 例如Hibernate的SessionFactory,它是sql会话工厂,这个对象一定是很重的(创建需要加载很多资源和时间),一般情况下,只需要 阅读全文
posted @ 2023-09-04 22:48 长名06 阅读(39) 评论(0) 推荐(0) 编辑
摘要:合成复用原则 基本介绍 尽量使用合成或聚合方式,而不是使用继承。 uml类图 此原则比较简单,无具体案例代码 设计模式核心思想 1.找出应用中可能需要变化之处,独立出来,不要将这些代码和不需要变化的代码耦合在一起。 2.针对接口编程,而不是针对实现编程。 3.为了交互对象之间的松耦合设计而努力。 设 阅读全文
posted @ 2023-09-01 21:54 长名06 阅读(20) 评论(0) 推荐(0) 编辑
摘要:迪米特法则 基本介绍 1.一个对象应该对其他对象保持最少的了解。 2.类和类的关系越密切,耦合度越大。 3.迪米特法则(Demeter Principle)又叫最少知道原则,即一个类对自己依赖的类知道的越少越好。也就是说,对于被依赖的类不管多么复杂,都尽量封装在类的内部。对外除了public的方法, 阅读全文
posted @ 2023-09-01 00:10 长名06 阅读(28) 评论(0) 推荐(0) 编辑