设计模式
文章平均质量分 75
对各种设计模式进行总结,包括适用问题、UML图、代码和一些对比总结
Tiigoo
这个作者很懒,什么都没留下…
展开
-
五.结构型——外观模式
问题 市场上有很多种股票,股民自己炒股时需要全部都了解,并且亲自控制每个的购买和抛售,很麻烦。这表现了高耦合,如图: 解决方法:用户将资金给基金,基金帮忙做所有操作,用户不用知道有哪些股票。如图:结构和代码结构代码四个子系统类class SubSystemOne{ public void MethodOne() { System.out.ptintln("子系统方法一"); } }class SubSystemTwo{原创 2021-11-16 21:27:13 · 100 阅读 · 0 评论 -
四.结构型——装饰者模式-Java代码
问题现在需要穿衣服,而有多种多样的衣服。第一种方案是把人和衣服分开,一个Person类,一个Finery服饰抽象类。Finery有许多继承它的子类,构成不同的服饰,每种服饰都有方法show,选择穿什么衣服就调用什么服饰的show方法。但这种就好比光着身子,当着大家的面,先穿T恤,再穿裤子,再穿鞋。服饰应该在内部组装完闭,然后再显示出来。问题在于服饰的穿戴顺序不固定,不能使用建造者模式装饰模式1.定义装饰模式(Decorator):动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生原创 2021-11-16 20:25:59 · 489 阅读 · 1 评论 -
二.结构型——桥接模式&合成聚合
《大话设计模式》第二十二章1. 问题 一个手机的软件在另一个手机上可能不能运行,一个解决是使用类继承:每个手机品牌都有游戏和通讯录,但这样如果要增加其他功能会很麻烦: 客户端要使用两种手机,就分别实例化两种品牌的各个功能。 如果换一种方式,让软件作为父类: 但这样的话如果要增加手机品牌,也比较麻烦使用继承的局限性: 对象的继承关系是在编译时就定义好了,所以无法在运行时改变从父类继承的实现。子类的实现与它的父类有非常紧密的依赖关系,以至于父类实现中的任何变化必然会导致子类发生变化。.原创 2021-11-04 11:26:49 · 230 阅读 · 0 评论 -
0.UML图介绍
抽象类:斜体的类名实现接口接口在头部有<<interface>>继承实现接口关联聚合合成依赖原创 2021-10-28 11:25:00 · 126 阅读 · 0 评论 -
结构型——1.适配器模式
《大话设计模式第十七章》1.问题 问题:姚明在NBA技术交流没问题,但是语言沟通需要翻译–翻译即为适配器。 在软件开发中,也就是系统的数据和行为都正确,但接口不符时,我们应该考虑用适配器,目的是使控制范围之外的一个原有对象与某个接口匹配。适配器模式主要应用于希望复用一些现存的类,但是接口 又与复用环境要求不一致的情况2.定义 适配器模式(Adapter),将一个类的接口转换成客户希望的另 外一个接口。Adapter模式使得原本由于接口不兼容而不能一 起工作的那些类可以一起工作。两种适.原创 2021-10-28 10:57:05 · 94 阅读 · 0 评论 -
四.创建型——单例模式(单件模式)
介绍单例模式,以及多线程下的单例模式原创 2021-10-26 19:33:12 · 122 阅读 · 0 评论 -
一. 创建型——抽象工厂&工厂方法&简单工厂方法
介绍了抽象工厂模式、简单工厂模式、工厂方法模式,并对他们进行比较原创 2021-10-25 12:33:46 · 927 阅读 · 1 评论 -
二.创建型——生成器/建造器模式
生成器模式及其优点原创 2021-10-25 16:09:12 · 90 阅读 · 0 评论 -
三.创建型——原型模式
引用《设计模式》第九章1.问题 在投简历的时候,给不同公司投的简历相同,在代码层面,有几种方式处理:ctlc+ctrlv,这样既不高效,而且臃肿,而且易出错建立简历类,重复new Resume()来创建简历,但对每个简历都要做相同的设置,比如调用r.setName(“小明”),有很多重复的代码。2.原型模式2.1 定义 原型模式(Prototype),用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需知道任.原创 2021-10-25 21:45:52 · 69 阅读 · 0 评论