设计模式
文章平均质量分 85
笔记
码畜也有梦想
这个作者很懒,什么都没留下…
展开
-
【韩顺平】享元模式笔记
展示网站项目需求小型的外包项目,给客户A做一个产品展示网站,客户A的朋友感觉效果不错,也希望做这样的产品展示网站,但是要求都有些不同:有客户要求以新闻的形式发布有客户人要求以博客的形式发布有客户希望以微信公众号的形式发布传统方案解决网站展现项目直接复制粘贴一份,然后根据客户不同要求,进行定制修改给每个网站租用一个空间方案设计示意图 客户A的网站问题分析需要的网站结构相似度很高,而且都不是高访问量网站,如果分成多个虚拟空间来处理,相当于一个相同网站的实例对象很多,造成服务器的资原创 2022-05-07 08:50:35 · 100 阅读 · 0 评论 -
【韩顺平】外观模式
影院管理项目组建一个家庭影院:DVD播放器、投影仪、自动屏幕、环绕立体声、爆米花机,要求完成使用家庭影院的功能,其过程为:直接用遥控器:统筹各设备开关开爆米花机放下屏幕开投影仪开音响开DVD,选dvd去拿爆米花调暗灯光播放观影结束后,关闭各种设备传统方式解决影院管理传统方式解决影院管理问题分析在ClientTest 的main方法中,创建各个子系统的对象,并直接去调用子系统(对象) 相关方法,会造成调用过程混乱,没有清晰的过程不利于在ClientTest 中,去维护原创 2022-05-07 08:17:27 · 121 阅读 · 0 评论 -
【韩顺平】组合模式笔记
看一个学校院系展示需求编写程序展示一个学校院系结构:需求是这样,要在一个页面中展示出学校的院系组成,一个学校有多个学院,一个学院有多个系。如图:传统方案解决学校院系展示(类图)传统方案解决学校院系展示存在的问题分析将学院看做是学校的子类,系是学院的子类,这样实际上是站在组织大小来进行分层次的实际上我们的要求是 :在一个页面中展示出学校的院系组成,一个学校有多个学院,一个学院有多个系, 因此这种方案,不能很好实现的管理的操作,比如对学院、系的添加,删除,遍历等解决方案:把学校、院、系都看做原创 2022-05-06 10:28:11 · 133 阅读 · 0 评论 -
【韩顺平】装饰者模式
星巴克咖啡订单项目咖啡馆:咖啡种类/单品咖啡:Espresso(意大利浓咖啡)、ShortBlack、LongBlack(美式咖啡)、Decaf(无因咖啡)调料:Milk、Soy(豆浆)、Chocolate要求在扩展新的咖啡种类时,具有良好的扩展性、改动方便、维护方便使用OO的来计算不同种类咖啡的费用: 客户可以点单品咖啡,也可以单品咖啡+调料组合方案1-解决星巴克咖啡订单问题分析Drink 是一个抽象类,表示饮料description就是对咖啡的描述, 比如咖啡的名字cost()原创 2022-05-05 18:04:38 · 92 阅读 · 0 评论 -
【韩顺平】桥接模式笔记
手机操作问题现在对不同手机类型的不同品牌实现操作编程(比如: 开机、关机、上网,打电话等),如图传统方案解决手机操作问题传统方案解决手机操作问题分析扩展性问题(类爆炸),如果我们再增加手机的样式(旋转式),就需要增加各个品牌手机的类,同样如果我们增加一个手机品牌,也要在各个手机样式类下增加。违反了单一职责原则,当我们增加手机样式时,要同时增加所有品牌的手机,这样增加了代码维护成本.解决方案-使用桥接模式桥接模式(Bridge)基本介绍桥接模式(Bridge模式)是指:将实现与抽原创 2022-05-05 10:20:41 · 133 阅读 · 0 评论 -
【韩顺平】适配器模式笔记
目录1. 案例2. 类适配器模式3. 对象适配器模式4. 接口适配器模式1. 案例泰国旅游使用插座问题泰国插座用的是两孔的(欧标),可以买个多功能转换插头 (适配器) ,这样就可以使用了适配器模式基本介绍适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper)适配器模式属于结构型模式主要分为三类:类适配器模式、对象适配器模式、接口适配器模式适配器模式原创 2022-05-04 10:39:20 · 183 阅读 · 0 评论 -
【韩顺平】建造者模式笔记
盖房项目需求需要建房子:这一过程为打桩、砌墙、封顶房子有各种各样的,比如普通房,高楼,别墅,各种房子的过程虽然一样,但是要求不要相同的.请编写程序,完成需求.传统方式解决盖房需求public abstract class AbstractHouse { //打地基 public abstract void buildBasic(); //砌墙 public abstract void buildWalls(); //封顶 public abstract void roofed(原创 2022-05-04 09:24:08 · 162 阅读 · 0 评论 -
【韩顺平】原型模式笔记
目录1. 克隆羊问题1.1 传统方式解决克隆羊问题1.2 原型模式2. 浅拷贝和深拷贝1. 克隆羊问题现在有一只羊tom,姓名为: tom, 年龄为:1,颜色为:白色,请编写程序创建和tom羊 属性完全相同的10只羊。1.1 传统方式解决克隆羊问题准备两个类:Sheep 和 Clientpublic class Sheep { private String name; private int age; private String color; public S原创 2022-05-03 21:45:19 · 104 阅读 · 0 评论 -
【韩顺平】工厂模式笔记
目录1. 简单工厂模式1. 简单工厂模式看一个具体的需求看一个披萨的项目:要便于披萨种类的扩展,要便于维护披萨的种类很多(比如 GreekPizz、CheesePizz 等)披萨的制作有 prepare,bake, cut, box完成披萨店订购功能。pizza包下的类://将Pizza 类做成抽象public abstract class Pizza { protected String name; //名字 //准备原材料, 不同的披萨不一样,因此,我们做成抽象方法 pu原创 2022-05-03 17:00:26 · 188 阅读 · 0 评论 -
【韩顺平】单例模式笔记
目录1. 单例设计模式介绍2. 单例设计模式八种方式3. 饿汉式(静态常量)4. 饿汉式(静态代码块)5. 懒汉式(线程不安全)6. 懒汉式(线程安全,同步方法)7. 懒汉式(线程安全,同步代码块)8. 双重检查9. 静态内部类10. 枚举1. 单例设计模式介绍所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。比如 Hibernate 的 SessionFactory,它充当数据存储源的代理,并负责创建 S原创 2022-05-02 16:00:29 · 213 阅读 · 0 评论 -
【韩顺平】设计模式七大原则
目录1. 设计模式常用的七大原则:1.1 设计模式的目的:1.2 单一职责原则1. 设计模式常用的七大原则:设计模式常用的七大原则有:单一职责原则接口隔离原则依赖倒转原则里氏替换原则开闭原则 ocp迪米特法则合成复用原则1.1 设计模式的目的:编写软件过程中,程序员面临着来自耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性等多方面的挑战,设计模式是为了让程序(软件),具有更好的代码重用性 (即: 相同功能的代码,不用多次编写)可读性 (即: 编程规范性,便于其他程序员的阅原创 2022-05-01 11:56:01 · 460 阅读 · 0 评论