
设计模式
文章平均质量分 87
zkyangll
这个作者很懒,什么都没留下…
展开
-
【程序设计】UML类图概述
类图是14种UML(统一建模语言)中的一种,是面向对象程序的核心建模工具,能够描述接口、类以及他们之间的协同关系,显示项目中这些概念的静态结构。 本文是我参考多篇博客整理而成,意在帮助自己开发过程中绘制更为清晰和规范的图示,使得整个软件设计有更好的可读性和理解性,降低开发的风险,同时也方便与其他研发同事的沟通交流。原创 2023-12-29 10:37:30 · 1123 阅读 · 0 评论 -
【程序设计】程序设计的七大原则
当然原来的类不是一定不能修改,如果对原来的代码很熟悉,涉及场景比较少、风险可控的情况下是可以修改的,或者代码面临重构,开闭原则就可以暂时放弃。接口隔离原则强调的是一个类对另一个类的依赖应该建立在最小的接口上,我们针对每一类业务要建立单独的接口,接口中的方法尽量少,而不需要复杂臃肿的接口,这也符合单一职责。继承会破坏类之间的封装性,父类的内部细节暴露给子类,称之为白箱操作,而通过组合/聚合的方式,将已有对象纳入到新对象中,使得对象的功能可以被调用,这种行为称为黑箱操作。其实就是关联和依赖的关系。原创 2023-12-31 19:56:34 · 1254 阅读 · 0 评论 -
【设计模式-1】图文并茂:单例模式的使用场景及7种代码实现
确保一个类只有一个实例,而且自行实例化并且自行向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法,单例模式是一种对象的创建型模式。某一个类(单例类)只能有一实例;单例类必须自行创建这个实例;单例类必须向整个系统提供这个唯一的实例。OK,有了这三点,其实就把创建单例模式的步骤罗列出来了,我们先看一下单例模式的类图,有个模糊的概念。类图还是比较简单清晰的,自关联关系,下面我们来看下为什么要用单例模式呢?原创 2023-12-31 19:58:51 · 1220 阅读 · 0 评论 -
【设计模式-2】原型模式的原理、代码实现及类图展示
原型模式也是一种创建型的涉及模式,实现和原理总体比较简单,一句话总结呢,就是可以实现用已有的对象创建新的对象,而不是用类来实例化对象,这样可以起到提升效率的目的。众所周知,类的实例化可以创建对象,但其实这是一个比较耗时耗力的工作,尤其是在大量实例化对象的业务场景下,可能会对系统的性能造成很大的影响。这时候,原型模式就可以很好的解决问题,用已有的对象来生成对象的副本,这里已有的对象就是原型对象,副本对象就是拷贝对象。原创 2024-01-02 12:32:55 · 1374 阅读 · 0 评论 -
【设计模式-3】简单工厂模式的代码实现及使用场景
简单工厂模式代码实现、UML类图、优缺点、使用场景原创 2022-12-18 15:08:14 · 1389 阅读 · 0 评论 -
【设计模式-4】工厂方法模式-代码实现及使用场景
工厂方法模式定义一个用于创建对象的工厂接口,让子类决定创建哪种类型的产品对象,使得具体产品对象的创建延迟到抽象工厂的子类中进行。工厂方法模式又称工厂模式,是一种创建型模式。抽象产品角色:它定义了产品接口,是工厂生产具体产品的父类,可以是接口或抽象类。具体产品角色:它实现了抽象产品接口,是工厂类生产的具体产品对象。抽象工厂角色:抽象工厂接口声明了工厂方法,用于返回产品,是工厂方法模式的核心,所有的具体工厂都要实现抽象工厂接口。具体工厂角色。原创 2023-12-31 22:14:35 · 894 阅读 · 0 评论 -
【设计模式-5】抽象工厂模式的代码实现及使用场景
抽象工厂模式:为创建一组对象提供了一种解决方案,与工厂方法模式相比,抽象工厂模式中的工厂角色不只创建一种产品,而是负责一个产品簇对象的生产。抽象工厂模式是一种创建型的设计模式。它声明了一组用于创建一个产品簇的方法,每个方法对应一种产品,它可以是接口或者抽象类。它实现了在抽象工厂中声明的创建具体产品的方法,生成一组具体的产品,这些产品组成一个产品簇,每种产品都属于一个产品等级。它是每种产品的抽象,可以是接口或者抽象类,声明产品的业务方法。原创 2024-01-05 21:04:27 · 1285 阅读 · 0 评论 -
【设计模式-6】建造者模式的实现与框架中的应用
建造者模式将一个复杂对象的构建和表示分离,使得同样的构建过程可以创建不同的表示。建造者模式一步一步地创建一个复杂的对象,它允许用户通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的构造细节。官方的表达还是挺难理解的,总体意思就是,构建过程固定,构建使用的每个组件都可以通过继承或者实现 呈现出多态的特性,这依赖于抽象建造者接口和具体的建造者实现类两个组件来表示。产品:复杂的产品类,建造者的最终产物,构建过程相对复杂,需要很多组件组装而成。抽象建造者。原创 2024-01-11 12:28:03 · 1285 阅读 · 0 评论 -
【设计模式-7】门面模式(外观模式)的代码实现和应用场景
门面模式客户端和多个子系统的通信会通过一个统一的外观角色进行,这个角色为子系统中的一组接口提供了一个一致的入口,它是一种结构性的设计模式。根据单一职责的描述,在软件中会将一个系统划分成为若干个子系统,这有利于降低整个系统的复杂性。但多个系统之间存在同步或者异步的交互关系,拓扑结构极为复杂,为了解决这种情况,一个常见的设计方式便是引入一个外观的角色,使得外部客户端与子系统之间的相互依赖关系达到最小。原创 2024-01-11 20:33:32 · 628 阅读 · 0 评论 -
【设计模式-8】组合模式的树形结构实现原理和代码演示
组合模式是针对树形结构而发展出来的一种设计模式,树形结构是由节点对象组合而成的对象,呈现“个体-整体”的结构,这种模式可以使客户端在操作树形结构的整体或者个体节点对象时,能做出统一的响应,这种整体和个体的概念对客户端来说也是不可见的。组合模式可以很好的做到,复杂树形对象的层次结构与客户端解耦的目的,是一种结构性的设计模式。抽象构件:一般是接口或者抽象类,声明了子类的方法和属性。子类可以是一个叶子构件 ,也可以是一个容器构件。叶子构件。原创 2024-01-22 14:53:31 · 909 阅读 · 0 评论 -
【设计模式-9】装饰模式的代码实现及使用场景
装饰模式可以动态的为某些对象增加一些额外的职责,在某些程度上,装饰器模式类似于继承,但是比继承更加灵活,可以在不改变一个对象本身功能的基础上额外增加新行为。装饰模式是一种对象结构性的模式。在定义中,我们提到了继承,通过继承的方式,子类可以在父类的功能上做增加,但这是在编译期间,需要修改子类来完成的。装饰模式可以在运行期间动态的包装原始对象,实现“装饰”的效果。装饰模式的实现需要以下4个角色。组件接口:组件接口是所有被装饰的类和装饰器抽象类共同要实现的接口标准,接口中会定义装饰的行为方法。组件实现。原创 2024-01-22 18:17:18 · 875 阅读 · 0 评论 -
【设计模式-10】适配器模式的代码实现及使用场景
适配器模式通过增加一个新的适配器类来解决接口不兼容的问题,使得原本没有任何关系的类可以协同工作,又被称为包装器模式,是一种结构性的设计模式。同时适配器模式可以实现客户端和目标接口的解耦,进一步提高目标接口的可复用性。适配器模式可以分为对象的适配器模式和类适配器模式两种,对象适配器模式中,适配器和目标接口是关联关系,类适配器中,适配器和目标接口是继承关系,在实际开发中,对象适配器的使用频率更高一些。目标接口:客户端正在使用的接口,也可以是抽象类,一般基于开闭原则是不能修改的。被适配者。原创 2024-01-26 18:34:54 · 692 阅读 · 0 评论 -
【设计模式-11】享元模式的代码实现及使用场景
享元模式运用共享技术实现大量相似对象的复用。系统可以只创建少量的对象,对象中某些属性是相同的不变的,这些不变的属性称为内部状态,同时依靠客户端传入一些外部属性,来区分不同的对象,这些变化的属性成为外部状态。享元模式是一种结构性设计模式。享元模式的原理很简单,其实就是在堆中创建少量对象,通过改变对象的内部属性,而不改变对象的内存地址,实现对象的复用。在享元模式中,存储这些共享实例的地方称为享元池,比如26个英文字母在内存中会被无数次使用到,这个时候每个字母就可以记录到特定享元池中。原创 2024-01-26 18:34:19 · 364 阅读 · 0 评论 -
【设计模式-12】代理模式的代码实现及使用场景
代理模式给某一个对象提供一个代理,并由代理对象控制对原对象的引用,代理模式是一种结构性的设计模式。代理模式的结构比较简单,核心是代理类。抽象接口:声明的一个接口,保证被代理的对象和代理对象的类都可以实现抽象接口。被代理角色:真实的需要被代理的对象,也就是真正实现业务逻辑的角色。代理角色:代理模式的核心角色,代理类内部会对真实的被代理类进行引用,同时会增强或者删除某一些功能。原创 2024-06-17 18:51:10 · 488 阅读 · 0 评论