软件设计模式
文章平均质量分 71
快来给你的代码注入灵魂吧~
South.return
https://blog.csdn.net/m0_53620413
展开
-
软件设计模式
目录 产生背景 概念 意义 优点 基本要素 模式名称 问题 解决方案 效果 分类 创建型模式 结构型模式 行为型模式 软件设计七大原则 (oop) 产生背景 1995 年,艾瑞克·伽马(ErichGamma)、理査德·海尔姆(Richard Helm)、拉尔夫·约翰森(Ralph Johnson)、约翰·威利斯迪斯(John Vlissides)等 4 位作者合作出版了《设计模式:可复用面向对象软件的基础》(Design Patterns: Elements of R原创 2021-10-13 17:03:19 · 105 阅读 · 2 评论 -
单例模式 (Singleton)
目录 概述 特点 优点 缺点 结构图 具体实现 懒汉式单例 饿汉式单例 计算机系统中的单例模式 应用场景 应用实例 概述 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 特点 单例类只有一个实例对象 该单例对象必须由单例类自行创建 单例类对外提供一个访问该单例的全局访问点 优点 保证内存里只有一个实例,减少了内存的开销 可以避免对资源的多重占用 设置全局访问点,可以优化和共享资源的访问 缺点 一般没有接口,扩展困难。如果要扩展,则除了修改原来原创 2021-10-14 09:33:36 · 473 阅读 · 6 评论 -
工厂模式 (Factory Method)
基本介绍 概述:定义一个用于创建产品的接口,由子类决定生产什么产品。 作用:实现了创建者和调用者的分离。 本质: 实例化对象不使用new,用工厂方法代替 将选择实现类,创建对象统一管理和控制。从而将调用者跟我们的实现类解耦 分类 简单工厂模式 概述:用来生产统一等级结构中的任意产品(对于增加新的产品,需要扩展已有代码)。 说明:虽然某种程度上不符合设计原则,但实际使用最多。 结构图: 代码实现: //运算类 public class Operation { ...原创 2021-10-14 15:37:41 · 119 阅读 · 11 评论 -
抽象工厂模式 (AbstractFactory)
目录 基本介绍 模式结构 图解 具体实现 基本介绍 概述:提供一个创建产品族的接口,其每个子类可以生产一系列相关的产品。 定义:一种为访问类提供一个创建一组相关或相互依赖对象的接口,且访问类无须指定所要产品的具体类就能得到同族的不同等级的产品的模式结构。 特点: 可以在类的内部对产品族中相关联的多等级产品共同管理,而不必专门引入多个新的类来进行管理 当需要产品族时,抽象工厂可以保证客户端始终只使用同一个产品的产品组 抽象工厂增强了程序的可扩展性,当增加一个新的产品族时,不需要修改原原创 2021-10-14 16:53:26 · 121 阅读 · 11 评论 -
代理模式 (Proxy)
目录 基本介绍 结构图 分类 静态代理 动态代理 基本介绍 概述:为某对象提供一种代理以控制对该对象的访问。即客户端通过代理间接地访问该对象,从而限制、增强或修改该对象的一些特性。 定义:由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。 优点: 可以使真实角色的操作更加纯粹,不用去关注一些公共的业务 公共也就交给代理角色,实现了业务的分工 公共业务发生扩展的时候,方便集中管理 缺点:原创 2021-10-14 20:42:13 · 190 阅读 · 32 评论 -
装饰模式 (Decorator)
目录 基本介绍 结构 结构图 具体实现 基本介绍 概述:动态的给对象增加一些职责,即增加其额外的功能。 特点: 装饰器是继承的有力补充,比继承灵活,在不改变原有对象的情况下,动态的给一个对象扩展功能,即插即用 通过使用不用装饰类及这些装饰类的排列组合,可以实现不同效果 装饰器模式完全遵守开闭原则 缺点:装饰器模式会增加许多子类,过度使用会增加程序得复杂性。 结构 抽象构件(Component)角色:定义一个抽象接口以规范准备接收附加责任的对象。 具体构件(Concrete原创 2021-10-15 11:20:57 · 119 阅读 · 8 评论 -
观察者模式 (Observer)
目录 基本介绍 结构图 具体实现 基本介绍 概述:多个对象间存在一对多关系,当一个对象发生改变时,把这种改变通知给其他多个对象,从而影响其他对象的行为。 特点: 降低了目标与观察者之间的耦合关系,两者之间是抽象耦合关系。符合依赖倒置原则 目标与观察者之间建立了一套触发机制 注意:具体目标对象和具体观察者对象之间不能直接调用,否则将使两者之间紧密耦合起来,这违反了面向对象的设计原则。 结构图 具体实现 结构图 //接口,让WeatherData 来实现 .原创 2021-10-15 16:54:49 · 113 阅读 · 21 评论 -
职责链模式 (Chain of Responsibility)
目录 基本介绍 结构 结构图 具体实现 基本介绍 概述:把请求从链中的一个对象传到下一个对象,直到请求被响应为止。通过这种方式去除对象之间的耦合。 定义:为了避免请求发送者与多个请求处理者耦合在一起,于是将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。 特点: 降低了对象之间的耦合度。该模式使得一个对象无须知道到底是哪一个对象处理其请求以及链的结构,发送者和接收者也无须拥有对方的明确信息 增强了系统的可扩原创 2021-10-16 09:28:32 · 197 阅读 · 19 评论