Java基础Java中23种设计模式之常用的设计模式尹正杰

Java基础-Java中23种设计模式之常用的设计模式

作者:尹正杰

一.设计模式分类

设计模式是针对特定场景给出的专家级的解决方案。总的来说设计模式分为以下三大类:

1>.创建型模式

答:共五种,即工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。

2>.结构型模式

答:共七种,即适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。

3>.行为型模式

答:共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

二.设计模式的六大原则

1>.开闭原则(OpenClosePrinciple)

答:开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类。

2>.里氏代换原则(LiskovSubstitutionPrinciple)

答:里氏代换原则(LiskovSubstitutionPrincipleLSP)面向对象设计的基本原则之一。里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。里氏代换原则是对“开-闭”原则的补充。实现“开-闭”原则的关键步骤就是抽象化。而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。——FromBaidu百科

3>.依赖倒转原则(DependenceInversionPrinciple)

答:这个是开闭原则的基础,具体内容:真对接口编程,依赖于抽象而不依赖于具体。

4>.接口隔离原则(InterfaceSegregationPrinciple)

答:这个原则的意思是:使用多个隔离的接口,比使用单个接口要好。还是一个降低类之间的耦合度的意思,从这儿我们看出,其实设计模式就是一个软件的设计思想,从大型软件架构出发,为了升级和维护方便。所以上文中多次出现:降低依赖,降低耦合。

5>.迪米特法则(最少知道原则)(DemeterPrinciple)

答:为什么叫最少知道原则,就是说:一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立。

6>.合成复用原则(CompositeReusePrinciple)

答:原则是尽量使用合成/聚合的方式,而不是使用继承。

三.单例模式(Singleton)

1>.什么是单例模式

单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。这样的模式有几个好处:

第一:某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销。

第二:省去了new操作符,降低了系统内存的使用频率,减轻垃圾回收(GC)机制压力。

第三:有些类如交易所的核心交易引擎,控制着交易流程,如果该类可以创建多个的话,系统完全乱了。(比如一个军队出现了多个司令员同时指挥,肯定会乱成一团),所以只有使用单例模式,才能保证核心交易服务器独立控制整个流程。

单利模式是非常简单的一种设计模式,它大致分为两种:即懒汉式和饿汉式。

2>.懒汉式

四.装饰者模式

1>.什么是装饰者模式

答:顾名思义,装饰模式就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例。

2>.装饰器模式的应用场景

第一:需要扩展一个类的功能。

第二:动态的为一个对象增加功能,而且还能动态撤销。(继承不能做到这一点,继承的功能是静态的,不能动态增删。)

装饰者模式在Java中的I/O流中应用的非常广泛!缺点:产生过多相似的对象,不易排错!

3>.实现代码

五.工厂(factory)模式

1>.什么是工厂模式

工厂方法模式分为以下三种:

第一:普通工厂模式,就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。

第二:多个工厂方法模式,是对普通工厂方法模式的改进,在普通工厂方法模式中,如果传递的字符串出错,则不能正确创建对象,而多个工厂方法模式是提供多个工厂方法,

第三:静态工厂方法模式,将上面的多个工厂方法模式里的方法置为静态的,不需要创建实例,直接调用即可。

2>.普通工厂模式

六.适配器

1>.什么是适配器

2>.

3>.

七.动态代理模式

1>.什么是动态代理模式

我们知道装饰者模式可以静态装饰一个类,通过装饰者模式可以给被装饰者添加附加功能,但是如果添加的功能特别多,你需要不断的继承这个类,这样可能会导致类的暴增!为了解决这个问题,引入了与装饰者类功能相似的动态代理模式。动态代理模式的核心就是代理器实现接口的方法,实现类也实现接口的方法。用户在调用接口的功能时,是通过代理器来访问的,而代理器则只需要调用实现目标类对象即可,并在代理器的invoke方法中添加相应的业务逻辑即可!画了一个草图如下:

2>.动态代理的应用场景

如果已有的方法在使用的时候需要对原有的方法进行改进,此时有两种办法:

第一:修改原有的方法来适应。这样违反了“对扩展开放,对修改关闭”的原则。

第二:就是采用一个代理类调用原有的方法,且对产生的结果进行控制。这种方法就是代理模式。

使用代理模式,可以将功能划分的更加清晰,有助于后期维护!

THE END
1.展示设计的分类有哪些,展示设计的五种主要分类方法参展知识展示设计的分类有哪些,展示设计的五种主要分类方法,展示设计的五种主要分类: 1、按艺术存在形式分类: 一维设计一般是指以时间为变量的设计; 二维设计又称平面设计,是针对平面上变化的物体,如图形、文字、商标、广告等的设计; 三维设计,又称立体设计,如产品、http://www.shyq-expo.com/xingyedongtai/3591.html
2.《展示设计的分类》课件.pptx展示设计的分类目录CONTENTS展示设计的概述展示设计的分类展示设计的技术与材料展示设计的案例分析总结与展望01展示设计的概述展示设计是一种通过视觉、听觉、触觉等多种感官体验来传达信息和吸引观众的艺术形式。定义具有明确的信息传递目的,强调创意、艺术性和互动性,能够吸引观众的兴趣并留下深刻印象。特点定义与特点展示https://m.renrendoc.com/paper/307045832.html
3.展览展厅设计的主题有哪些分类?新闻资讯四、荣誉主题:企业历年的业务量数据统计、成功案例、发展历程,可以视为企业荣誉证明,在展馆内进行展示时,通常以陈列的形式展示,外加音乐和主题色彩的设计搭配,可以借助良好的参展氛围和环境打动客户。 总之,展览展馆设计主题的分类主要就可以分为以上四类。 https://www.xiumeimodel.com/news/1697.html
4.设计专业分类及就业前景介绍七、动漫设计:原画设计基础,道具与场景设计,动漫角色设计,二维动画设计,3D道具 与场景设计,动漫三维角色制作,三维动画特效设计。 八、服装设计:工艺设计,结构设计,创作设计。 九、舞台设计:舞台绘画、道具制作、美术工艺、舞台灯光、道具与服装。 十、展示设计:展览版面设计,展览说明书及样本的牌式设计,展示招贴(海报https://www.to8to.com/yezhu/z97063.html
5.一年级下《分类与整理》教学设计(精选13篇)3.汇报交流分类的结果。 (1)教师组织学生在小组内互相交流分类的结果:你是怎么样分的? 师:好了,同学们我们就整理到这,现在停下你手中的工作,一起来看肖老师这,1,2,3,我看这位同学坐的真精神,老师看到你们整理得特别的好,现在请一位同学到前面来给同学们展示一下你是如何进行分类的。 https://www.360wenmi.com/f/file51c9g8f6.html
6.展示设计概论及展示空间功能分类及空间分析.ppt?;现代展示设计理念形成是在19世纪末,而人类对展示的应用则早得多。远古时期的图腾崇拜、树碑立柱、祭祀鬼神活动,体现着原始的意念传达展示形式。中世纪时期,人类出现了商品交易的集市贸易形式,当时,人们将商品直接裸摊在地,并有意识地分类陈列,后期还出现了专门摆放商品的摊床,形成了最初的商品展示和展销会的雏https://max.book118.com/html/2017/0419/101131125.shtm
7.艺术设计的分类形式是什么环艺:室内设计,公共场所设计,展示设计等;工业设计:产品造型设计等;戏剧美术设计:舞台灯光,舞台设计https://edu.iask.sina.com.cn/jy/3oqR2ZfXakl.html
8.品牌服饰零售货品陈列与展示一个出色的视觉展示设计不仅能够吸引顾客注意力,而且还能激发顾客的好奇心与求知欲。服饰陈列与橱窗展示,应能够很好地传达服饰品的艺术风格、审美品味与流行趋势,使顾客看到设计者的独具匠心与不同凡响之处,耐人寻味,令人感到其中的无穷韵味与深刻的内涵。 https://www.misall.com/88/2245.html
9.卡片内容设计服务卡片设计元服务设计卡片内容设计 内容设计开发者可以定义每一张服务卡片的功能,通常来说,卡片尺寸越小对应展示的功能和信息就越少,所能使用的控件也会受限制。请根据核心诉求进行卡片设计,聚焦在关键信息的展示上。 尺寸……DOC.MoreInformationhttps://developer.huawei.com/consumer/cn/doc/design-guides/service-widget-design-0000001098216280-V1
10.经验分享商城分类中商品橱窗展示的设计方法(要点:正方形的CSS华为商城分类中的橱窗展示 概要 本文是在实际的电子商城项目开发中分类中商品橱窗展示中遇到的问题以及解决的办法。 主要有两个方面: 第一、使用flex的方法实现自动排列; 第二、正方形的CSS实现方法; 第一、是比较容易实现的,难点是在正方形的CSS实现方法。 https://www.jianshu.com/p/2f2b136884de
11.公共空间室内设计的分类高境界设计设计师公共空间的设计范围很广,把它们进行分类主要目的:一是更好的理解室内设计所要把握的不同分类的设计特征。明确所设计的室内空间的使用性质。其基本功能和要求,不同分类的室内空间所要表达的环境氛围是截然不同的。二是较容易分阶段掌握室内设计方法,从小到大,从易到难,从自由的空间到特殊的限定空间分别掌握。公共空间https://www.shejiben.com/sjs/788004/log-28259-l400193.html
12.设计师到底在设计什么?07 动画设计 动画设计是通过电脑对动画进行二维、三维影视制作,以及影视后期的视频剪辑和处理。如果细分出来,动画包含人物造型设计、道具设计、场景设计及绘制、立体效果表现。随着影视业的快速发展,动画设计的发展前景越来越广阔。 08 展示设计 博物馆的展品展示、商场中商品的陈列方式、超市里货架的位置及货品摆放均属于https://m.ui.cn/details/460511
13.全国高校数字艺术设计大赛(NCDA大赛)2020年2月全国高校数字艺术设计大赛(NCDA大赛)成功入选中国高等教育学会发布的《2019全国普通高校学科竞赛排行榜》,成为高校教育教学改革和创新人才培养的重要竞赛项目。 6. 展示平台更加权威 本届赛事获奖作品经组委会推荐将在“学习强国学习平台”专区展示,这是同类赛事中罕见的。 http://cpae.haue.edu.cn/info/1016/1071.htm
14.展馆设计中展示道具有以下几种分类形式展馆设计中展示道具有以下几种分类形式:(1)按标准化的程度分类可分为标准化展示道具组合和非标准化展示道具组合。(2)按材料分类可分为以木材为主的展示道具;以金属为主的展示道具;以软性材料为主的展示道具;以人工合成材料为主的展示道具。(3)按功能要求及形式分类可分为框架类、橱柜类、屏障类、台座类、装饰https://www.douban.com/note/505196328/
15.网页风格设计分类网页风格设计从哪些方面考虑→MAIGOO知识网页风格设计分类 网页风格设计从哪些方面考虑 摘要:网站的成功是离不开网站设计的。因为网站设计制作是将企业的内容展示给用户的方式和途径。网站风格的设计,不能为了个性,同时使用多种元素,这样效果反而会让用户厌烦,对网站的制作毫无帮助。这样的一个网站在用户的眼里就会一个垃圾网站。其实用户喜欢的是风格统一的,https://www.maigoo.com/goomai/219355.html
16.安徽远拓展览有限公司合肥展厅设计党建展厅设计企业展厅党建展厅垃圾分类科普馆 1 2 3 CASE SHOW 案例展示 更多案例 ∨ SERVICE 核心服务 策展设计 更多 布展施工 更多 互动展项 更多 互动软件 更多 视频动画 更多 OUR ADVANTAGES 我们的优势 专心专注为客户打造一站式文化创意服务体验 艺术与科技融合 http://www.yuantuozl.com/