java-23种设计模式概述【软件设计模式基本介绍(是什么、作用、优点)、模式的分类和介绍】


一、设计模式基本介绍(是什么、作用、优点)

1、软件设计模式是什么?

软件设计模式(Software Design Pattern),又称设计模式。


2、设计模式的作用

★ 提高代码的可复用性、可维护性、稳健性、安全性和可读性。


3、学习设计模式的意义

★ 设计模式的本质是面向对象设计原则的实际运用,是对类的封装性、继承性和多态性以及类的关联关系和组合关系的充分理解。


4、软件设计模式的最关键的4个基本要素:

模式名称问题(描述了该模式的应用环境,即何时使用该模式。)、解决方案效果


5、使用设计模式优点:

(1)可以提高程序员的思维能力、编程能力和设计能力。
(2)使程序设计更加标准化、代码编制更加工程化,使软件开发效率大大提高,从而缩短软件的开发周期。
(3)使设计的代码可重用性高、可读性强、可靠性高、灵活性好、可维护性强



二、模式的分类和介绍

1、模式的分类:根据目的来,创建型模式、结构型模式、行为型模式

■ 创建型模式(5种,单例、原型、工厂方法、抽象工厂、建造者);

■ 结构型模式(7种,代理、适配器、桥接、装饰、外观、享元、组合);

■ 行为型模式(11种,模板方法、策略、命令、职责链、状态、观察者、中介者、迭代器、访问者、备忘录、解释器)


2、模式的介绍

■ 创建型模式:描述了“怎样创建对象”,主要特点是“将对象的创建与使用分离”

(1) 单例(Singleton)模式:某个类只能生成一个实例,该类提供了一个全局访问点供外部获取该实例,其拓展是有限多例模式。

(2) 原型(Prototype)模式:将一个对象作为原型,通过对其进行复制而克隆出多个和原型类似的新实例。

(3)工厂方法(Factory Method)模式:定义一个用于创建产品的接口,由子类决定生产什么产品。

(4)抽象工厂(Abstract Factory)模式:提供一个创建产品族的接口,其每个子类可以生产一系列相关的产品。

(5)建造者(Builder)模式:将一个复杂对象分解成多个相对简单的部分,然后根据不同需要分别创建它们,最后构建成该复杂对象。


■ 结构型模式:描述了如何将类或对象按某种布局组成更大的结构。

(1)代理(Proxy)模式:为某对象提供一种代理以控制对该对象的访问。即客户端通过代理间接地访问该对象(真实对象),从而限制、增强或修改该对象的一些特性。

(2)适配器(Adapter)模式:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。

(3)桥接(Bridge)模式:将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。

(4)装饰(Decorator)模式:动态的给对象增加一些职责,即增加其额外的功能。

(5)外观(Facade)模式:为多个复杂的子系统提供一个一致的接口,使这些子系统更加容易被访问。

(6)享元(Flyweight)模式:运用共享技术来有效地支持大量细粒度对象的复用。

(7)组合(Composite)模式:将对象组合成树状层次结构,使用户对单个对象和组合对象具有一致的访问性。


■ 行为型模式:用于描述类或对象之间怎样相互协作共同完成单个对象都无法单独完成的任务,以及怎样分配职责

(1)模板方法(Template Method)模式:定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。

(2)策略(Strategy)模式:定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的改变不会影响使用算法的客户。

(3)命令(Command)模式:将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。

(4)职责链(Chain of Responsibility)模式:把请求从链中的一个对象传到下一个对象,直到请求被响应为止。通过这种方式去除对象之间的耦合。

(5)状态(State)模式:允许一个对象在其内部状态发生改变时改变其行为能力。

(6)观察者(Observer)模式:多个对象间存在一对多关系,当一个对象发生改变时,把这种改变通知给其他多个对象,从而影响其他对象的行为。

(7)中介者(Mediator)模式:定义一个中介对象来简化原有对象之间的交互关系,降低系统中对象间的耦合度,使原有对象之间不必相互了解。

(8)迭代器(Iterator)模式:提供一种方法来顺序访问聚合对象中的一系列数据,而不暴露聚合对象的内部表示。

(9)访问者(Visitor)模式:在不改变集合元素的前提下,为一个集合中的每个元素提供多种访问方式,即每个元素有多个访问者对象访问。

(10)备忘录(Memento)模式:在不破坏封装性的前提下,获取并保存一个对象的内部状态,以便以后恢复它。

(11)解释器(Interpreter)模式:提供如何定义语言的文法,以及对语言句子的解释方法,即解释器。



☺ 参考文献:《软件设计模式(java版)---程细柱》




写在后面的话

       如果你觉得一乐的文章给您带来了一些收获,可以给个三连❤️ ,一乐会一如既往地更新有价值的博客。如果文章存在错误,也欢迎大家指出。还有,如果大家有什么好的学习技巧、学习感悟,也非常欢迎大家在评论区一起交流~

最后感谢大家的支持,谢谢~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,530评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,403评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,120评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,770评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,758评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,649评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,021评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,675评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,931评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,751评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,410评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,004评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,969评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,042评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,493评论 2 343

推荐阅读更多精彩内容

  • 重新理解财富:完成12次认知升级 我们来对整个专栏做一次复盘: 你学习的第一个模块叫做:理解财富,在这个模块中,我...
    f8e0aa5c8708阅读 4,048评论 1 14
  • 作者 贾寒蕻金瓶梅:被忽略的名著 我对于《金瓶梅》的最初印象是来自于初高中的时候。那个时候《看天下》杂志总会刊登一...
    贾寒蕻阅读 915评论 2 3
  • 中国开征房地产税的目的:金融风险控制,财富分配公平。 第一,房地产税是一种长期宏观调控手段,是房地产“长效机制”的...
    tyx田阅读 164评论 0 0
  • 你觉得沟通重要吗?你认为什么样的沟通是有效沟通呢? 1.学会拒绝,锻炼自己的心力。 2.在生活中把沟通对象当作智者...
    莫忘小寒阅读 175评论 0 1
  • 【宝山区】关于开展2021年度宝山区新引进优秀人才安居资助申报工作的通知 根据《宝山区新引进优秀人才安居资助办法》...
    知产圈李老师阅读 142评论 0 0