![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
一起学习设计模式
文章平均质量分 90
imlxp
这个作者很懒,什么都没留下…
展开
-
一起学习设计模式--10.装饰模式
模式目标扩展系统功能前言尽管目前房价依然在涨,但依旧阻止不了大家对新房的渴望和买房的热情。如果大家买的是毛坯房,还要面临一个艰巨的任务,那就是装修。对于新房进行装修,并没有改变房屋用于居住的本质,但是它可以让房子变得更漂亮、更温馨、更实用、更能满足居家需求。在软件设计中,也有一种类似新房装修的技术可以对已有对象(新房)的功能进行扩展(装修),以获得更加符合用户需求的对象,使得对象具有更加强大的功能。这种技术对应于一种被称之为装饰模式的设计模式。一、图形界面构件库的设计A公司基于面向对象技术开发了一原创 2021-04-25 08:30:53 · 175 阅读 · 0 评论 -
一起学习设计模式--09.组合模式
模式目标树形结构的处理前言树形结构在软件中随处可见,例如操作系统中的目录结构、应用软件中的菜单、办公系统中的公司组织结构等。如何运用面向对象的方式来处理这种树形结构是组合模式需要解决的问题。组合模式通过一种巧妙的设计方案使得用户可以一致性的处理整个树形结构或者树形结构的一部分,也可以一致性的处理树形结构中的叶子节点(不包含子节点的节点)和容器节点(包含子节点的节点)。一、设计杀毒软件的框架结构A公司打算开发一个杀毒软件,该软件既可以对某个文件夹杀毒,也可以对某个指定的文件进行杀毒。该杀毒软件还可以原创 2021-04-18 18:04:12 · 188 阅读 · 0 评论 -
一起学习设计模式--08.桥接模式
模式目标处理多维度变化前言现实生活中我们经常会遇到两种类型的笔,他们分别是毛笔和蜡笔。假设需要使用大、中、小3种型号的画笔来绘制12种不同的颜色。如果使用蜡笔,需要3 X 12 = 36 支。但是如果是毛笔的话,就不一样了,我们只需要3种型号的毛笔,和12盒颜料即可,涉及的对象个数仅为 3 + 12 = 15,要远远小于36,但是却可以实现与36种蜡笔一样的效果。如果要增加一种新型号的画笔,并且也需要12种颜色,相应的蜡笔需要增加12支,但是毛笔只需要增加一支即可。通过分析得知:在蜡笔中,颜色和型号两原创 2021-04-10 23:19:11 · 344 阅读 · 0 评论 -
一起学习设计模式--07.适配器模式
前言有的笔记本电脑工作电压是20V,但是国家标准用电电压是220V,如何让20V的笔记本电脑能够在220V的电压下工作?答案是引入一个电源适配器,俗称充电器/变压器,有了这个电源适配器,生活用电和笔记本电脑即可兼容。在软件开发中,也存在类似的不兼容的情况,也可以像引入电源适配器一样引入一个被称为适配器的角色来协调这些存在不兼容的结构,这种设计方案就是适配器模式。一、没有源码的算法库背景A公司以前开发了一个算法库,里面包含了一些常用的算法,如排序和查找等算法,在进行各类软件开发时经常需要重用该算法库原创 2021-04-03 21:59:00 · 200 阅读 · 0 评论 -
一起学习设计模式--06.建造者模式
前言没有人买车会只买一个轮胎或一个方向盘,大家买的都是一辆包含轮胎、方向盘和发动机等多个部件的完整汽车。如何将这些部件组装成一辆完整的汽车并返回给用户,这是建造者模式需要解决的问题。建造者模式又称生成器模式,它是一种较为复杂、使用频率也相对较低的创建型模式。建造者模式向客户端返回的不是一个简单的产品,而是一个由多个部件组成的复杂产品。一、游戏角色设计A公司游戏开发小组决定开发一款名为《xx群侠传》的网络游戏,该游戏采用主流的RPG模式。玩家可以在游戏中扮演虚拟世界中的一个特定角色,角色根据不同的游戏原创 2021-03-22 17:48:29 · 320 阅读 · 0 评论 -
一起学习设计模式--05.原型模式
前言《西游记》中的孙悟空吹猴毛变出很多猴兵的故事想必大家都知道,《火影》中鸣人的多重影分身大部分人应该也是都知道,他们都可以根据自己的形象,复制(又称克隆)出很多和自己一摸一样的“身外身”来。在设计模式中也存在一个类似的模式,可以通过一个原型对象克隆出多个一模一样的对象,该模式被成为原型模式。一、大小异同的工作周报A公司一直使用自行开发的一套OA系统进行日常工作办理,但在使用过程中,越来越多的人对工作周报的创建和编写模块产生了抱怨。究其原因,A公司的OA管理员发现,由于某些岗位每周工作存在重复性,工作原创 2021-03-15 08:31:21 · 198 阅读 · 0 评论 -
一起学习设计模式--04.抽象工厂模式
前言在工厂方法模式中通过引入工厂等级结构,解决了简单工厂模式中工厂类职责过重的问题。但是由于工厂方法模式中每个工厂只生产一类产品,这样可能会导致系统中存在大量的工厂类,势必会增加系统的开销。为了解决这个问题,可以考虑将一些相关的产品组成一个“产品族”,由同一个工厂来统一生产,这就是抽象工厂模式的基本思想。一、界面皮肤库的初始设计A科技公司打算开发一套界面皮肤库,可以对Winform桌面软件进行界面美化。用户可以通过菜单来选择皮肤,不同的皮肤将提供视觉效果不同的按钮、文本框、组合框等界面元素。结构示意原创 2021-03-08 08:19:03 · 442 阅读 · 0 评论 -
一起学习设计模式--03.工厂方法模式
简单工厂模式虽然简单,但是存在一个很严重的问题:由于静态工厂方法是根据传入的参数不同来创建不同的产品的,所以当系统中需要引入新产品时,就需要修改工厂类的源代码,这将违背开闭原则。为了实现增加新产品而不修改原有代码,工厂方法模式应运而生。一、日志记录器的设计A科技公司欲开发一个系统运行日志记录器(Logger),该记录器可以通过多种途径保存系统的运行日志,例如通过文件或数据库记录,用户可以通过修改配置文件灵活地更换日志记录方式。在设计各类日志记录器时,A科技公司的开发人员发现需要对日志记录器进行一些初始化原创 2021-02-28 08:53:22 · 189 阅读 · 1 评论 -
一起学习设计模式--02.简单工厂模式
工厂模式是最常用的一类创建型设计模式。我们所说的工厂模式是指工厂方法模式,它也是使用频率最高的工厂模式。简单工厂模式是工厂方法模式的小弟,它不属于GoF 23种设计模式,但是在软件开发中应用也颇为频繁,通常将它作为学习其它工厂模式的入门。一、图表库的设计A科技公司计划使用C#语言开发一套图表库,该图表库可以为应用系统提供各种不同外观的图表,比如柱状图、饼状图、折线图等。A科技公司的图表库设计人员希望为应用系统开发人员提供一套灵活易用的图表库,而且可以比较方便的对图表库进行扩展,以便能够在将来增加一些新原创 2021-02-22 08:27:27 · 170 阅读 · 0 评论 -
一起学习设计模式--01.单例模式
单例模式(Singleton Pattern):确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。单例模式是创建型模式的一种,是创建型模式中最简单的设计模式用于创建那些在软件系统中独一无二的对象。虽然单例模式很简单,但是它的使用频率还是很高的。学习难度:★☆☆☆☆使用频率:★★★★☆一、单例模式的动机任务管理器相信大家都不陌生,大家可以用自己的电脑做个尝试,在Windows的任务栏的右键菜单中多次点击“任务管理器”,看能否打开多个任务管理器窗口。正常情况下,无.原创 2021-02-16 09:27:55 · 509 阅读 · 0 评论 -
7种常用的面向对象的设计原则
面向对象设计的目标之一就是可维护性复用。包括:1、设计方案和代码的复用2、系统要易于扩展和修改面向对象的设计原则就可以作为上述目标的指导方针,这些原则蕴含在很多的设计模式中,是前辈们从许多的设计方案中总结出来的指导性原则。最常用的7种设计原则:单一职责原则(Single Responsibility Principle, SRP):一个类只负责一个功能领域中的相应职责开闭原则(Open-Closed Principle, OCP):软件实体应对扩展开放,对修改关闭里氏替换原则(Liskov原创 2021-02-09 09:18:26 · 149 阅读 · 0 评论 -
一起学习设计模式--设计模式
前言武侠小说中武术分招式和内功,比如独孤九剑就是招式,九阳神功就是内功。招式可能照猫画虎很快就能学会,但是内功心法则需要日积月累,一点一点的修炼。在我们日常开发中也分招式和内功。比如我们常见的C#、Java、C++、等编程语言,Visual Studio、Eclipse等开发工具,ASP.NET Core、JSP等开发技术,AutoFac、CAP等框架技术,这些我们都可以认为是招式。而数据结构、算法、设计模式、重构、软件工程等则为内功。一般内功好的人,学习剑招也会很快,就比如张无忌学会了九阳神功后,什原创 2021-02-08 08:29:27 · 144 阅读 · 0 评论