问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

23种设计模式知识要点,你都了解了吗?

发布网友 发布时间:2023-09-16 11:58

我来回答

1个回答

热心网友 时间:2024-03-11 18:32

23种设计模式知识要点分别是工厂方法,抽象工厂,单例,建造者,原型,适配器,桥接,装饰器,组合,外观,享元,代理,模板方法,策略,命令,责任链,中介者,观察者,备忘录,迭代器,访问者,状态,解释器模式。

设计模式是指在软件开发中常用的解决问题的代码结构的总结和抽象。在代码开发中采用设计模式可以提高软件的可维护性。可拓展性和代码复用性。下面简单地回顾下23种设计模式的概念以及其应用场景:

1、工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化哪个类。应用场景:可以避免与具体对象类型的绑定关系,可以创建多种不同对象,易于扩展。

2、抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。应用场景:可以创建多个产品族的对象,在一定程度上提高了系统的灵活性和可扩展性。

3、单例模式:确保类只有一个实例,并提供一个全局访问点。应用场景:在需要实现系统中唯一对象时使用,如线程池。缓存。日志对象等。

4、建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。应用场景:需要通过多个步骤来构建一个复杂的对象时使用。

5、原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。应用场景:需要创建多个相同对象时使用,可以避免重复的初始化操作。

6、适配器模式:将一个类的接口转换成客户希望的另一个接口。应用场景:当两个类接口不兼容时使用,可以让它们协同工作。

7、桥接模式:将抽象部分与实现部分分离,使它们可以独立变化。应用场景:通过将变化的抽象部分与实现部分分离,可以提高系统的灵活性和可维护性。

8、装饰器模式:动态地将责任附加到对象上,扩展功能。应用场景:在不改变对象接口的前提下,动态地给对象增加功能时使用。

9、组合模式:将对象组合成树形结构以表示“部分-整体”的结构关系,允许用户以相同的方式处理单个对象和组合对象。应用场景:当需要把整体与部分的关系表示出来时使用。

10、外观模式:为子系统中的一组接口提供一个统一的接口。应用场景:当需要简化接口或减少客户端与系统的交互时使用,可以提高系统的灵活性和可扩展性。

11、享元模式:运用共享技术有效地支持大量细粒度的对象。应用场景:当需要创建大量对象,且这些对象的许多属性相同时使用,可以减少内存的使用。

12、代理模式:为其他对象提供一种代理以控制对这个对象的访问。应用场景:当需要控制对象的访问权限或对象不易直接访问时使用。

13、模板方法模式:定义一个算法的骨架,将一些步骤延迟到子类中实现。应用场景:当需要在不改变算法结构的情况下修改算法的某些步骤时使用。

14、策略模式:定义一系列算法,将每个算法都封装起来,并让它们之间可以互换。应用场景:当需要动态地改变对象的行为时使用,可以提供灵活的设计。

15、命令模式:将请求封装成对象,以便使用不同的请求。队列或者日志来参数化其他对象。应用场景:当需要将请求发送者和请求接收者解耦时使用,可以提高系统的灵活性。

16、责任链模式:将多个对象连成一条责任链,并沿着这条链传递请求,直到有一个对象处理它为止。应用场景:当需要避免请求发送者与接收者之间的耦合时使用,可以提高系统的灵活性。

17、中介者模式:用一个中介对象封装一系列的对象交互,使得每个对象都不需要显式地知道其他对象。应用场景:当需要解耦对象之间的关系时使用,可以简化对象之间的交互。

18、观察者模式:定义了对象之间的一对多依赖,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。应用场景:当对象之间存在关联关系,一个对象的状态发生改变会影响到其他对象时使用。

19、备忘录模式:在不破坏封装的前提下,捕获并存储对象的内部状态,以便稍后可以将该对象恢复到原先的状态。应用场景:当需要实现撤销操作时使用,可以保存某个对象的历史状态。

20、迭代器模式:提供一种顺序访问复合对象内各元素的方法,而又不需要暴露该对象的内部表示。应用场景:当需要按顺序访问复杂对象内部的各个元素时使用,可以提供灵活和安全的访问方式。

21、访问者模式:表示一个作用于某对象结构中各元素的操作,可以在不改变各个元素的情况下定义作用于这些元素的新操作。应用场景:当需要对复杂对象结构中的各个元素进行某些特定的操作时使用。

22、状态模式:允许一个对象在其内部状态改变时改变其行为。应用场景:当需要根据对象的内部状态改变其行为时使用,可以提高系统的灵活性和可扩展性。

23、解释器模式:给定一个语言定义,定义出其文法的一种表示,并定义一个解释器,使用该解释器来解释这个语言中的句子。应用场景:当需要解释和执行一些特定的语法时使用。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
河北医科大学就业率怎么样 河北医科大学的毕业生就业情况怎么样 河北医科大学5+3好就业吗 河北医科大学临床学院就业情况 河北医科大学临床医学系就业情况怎么样 河北医科大学临床学院好就业吗 河北医科大学5+3临床专业好就业吗 我手机卡是神州行的,接听免费但要每月10元,我可以退定吗? 神州行月扣10元是怎么回事? 龙岩神州畅听卡的10元短信套餐如何取消 模式对比是什么意思 九江理工职业学院可以申请走读生吗 赞美少年的四字成语 颅骨修补后,刀口处吐线,可以不管吗?可以洗头吗? 做过露骨修补手术的刀口长好了能经常洗头么? 临安办证中心周未上班吗? 考试必备,小学语文:205个最易写错的四字词语归 200个易写错的成语 期货用什么手机软件比较好? 大一新生,喜欢上了一个大二的学姐,可是我本身还不是内种会撩的,感觉... 电脑卡与键盘有关系吗? 梦见摘吃的梅子长虫了的预兆 cmd命令行怎样练习python,怎样运行python程序 新疆巴州巴音布鲁克的冬天作文 给孩子穿OKAIDI的衣服好不好?有妈妈了解OKAIDI么? 化合物的旋光性如何判断?比如这个含氮化合物有无旋光性? 建行建融数字账户在哪里能看到 比较有品味的优雅的男英文名 住房公积金怎么切换账号 绑定公积金怎么解绑 张天赋的历史记载 虹桥火车站检票口11ab靠近哪个入口 反冲洗除污器和y型过滤哪个好 喉咙痛怎么办啊?有偏方吗? 索尼相机RX0M2的性能怎么样?适合自拍吗? 关注过索尼相机RX0M2吗?可以拿来自拍吗? 有人用索尼相机RX0M2自拍过吗?感觉如何? 愈加完善的口袋相机,索尼RX0,II评测 内江去大熊猫繁育研究基地有多远内江自驾游到大熊猫繁育研究基地线路查 ... 广安开车到大熊猫繁育研究基地距离多远广安自驾游到大熊猫繁育研究基地... 南充到阆中江南镇熊猫乐园怎么去 最近看了索尼新发布的RX0,想用它拍视频,它可以录4K? 图书馆的报告厅可不可以开窗??? 在自己房子的墙面上开一个窗子,需要去哪里申请,有什么样的程序! 护肝养肝最好食物 护肝吃什么食物最好 暖暖公主梦软件安全吗 我买的蜂蜜,放在冰箱里冷藏起来,结果拿出来后变成类似于乳白色。这... 公安报案通知函是什么 警告函只能律师写吗