首页 > 其他分享 >设计模式概念和分类

设计模式概念和分类

时间:2023-12-16 18:32:27浏览次数:27  
标签:对象 创建 分类 模式 概念 实例 设计模式 结构型

(设计模式概念和分类)

概念

设计模式一般是指软件开发人员在开发的时候遇到软件设计问题时的一般解决方案,这样当我们遇到重复问题的时候,就能够一次一次地使用该方案而避免了重复劳动。并且可以提高代码的可重用性和可读性,增强系统的可靠性和可维护性,解决一系列的复杂问题,提高协作效率。 简单来说,设计模式的概念就是 可重复使用的、高效的、易读的、有目标性的、高可移植性经验总结模板。

分类

针对不同问题,设计模式也可以分为三大类

创造型模式 结构型模式 行为型模式
工厂方法模式(Factory Method) 适配器模式(Adapter) 责任链模式(Chain of Responsibility)
抽象工厂模式(AbstractFactory) 桥接模式(Bridge) 命令模式(Command)
创建者模式(Builder) 组合模式(Composite) 解释器模式(Interpreter)
原型模式(Prototype) 装饰模式(Decorator) 迭代器模式(Iterator)
单例模式(Singleton) 外观模式(Facade) 中介者模式(Mediator)
享元模式(Flyweight) 备忘录模式(Memento)
代理模式(Proxy) 观察者模式(Observer)
状态模式(State)
策略模式(Strategy)
模板方法模式(TemplateMethod)
访问者模式(Visitor)
  1. 创造型模式

    创建型设计模式抽象了实例化的过程,帮助系统独立于如何创建、整合它其中的对象以其职责。如一个类创建型模式使用继承改变实例化的类,而一个对象创建型模式将实例化委托给另一个对象,主要体现在对象的创建

  2. 结构型模式

    结构型设计模式采用继承机制来组合系统接口,比如采用多重继承的方式将两个以上的类组合成一个大类,这个大类包含了所有父类的性质,有助于多个独立开发的类进行协同工作。

  3. 行为型模式

    行为型设计模式不仅描述对象或类的模式,还描述它们之间的通信模式,显现他们在运行时复杂的控制环节,将难以理解的控制流体思路转换成不同对象之间的联系思路。

标签:对象,创建,分类,模式,概念,实例,设计模式,结构型
From: https://blog.51cto.com/u_16370137/8853472

相关文章

  • 结构性设计模式-适配器模式的优缺点
    把一个类的接口变换成客户端所期待的另一种接口,从而使原本接口不匹配而无法一起工作的两个类能够在一起工作。类的适配器模式对象的适配器模式对象适配器在上图中可以看出:冲突:Target期待调用Request方法,而Adaptee并没有(这就是所谓的不兼容了)。解决方案:为使Target能够使用Ad......
  • Vue3响应式概念
    响应式的基本概念响应式是指当数据发生变化时,系统会自动更新与数据相关的DOM结构。在Vue2中,响应式系统的实现基于 Object.defineProperty。然而,Object.defineProperty 有一些局限,如:无法监听数组的变化、需要遍历对象的每个属性进行监听、性能开销较大。在Vue3中,响应式系统......
  • ml.net例子笔记2-概念和Widnows AI Studio
    一机器学习和ml.net1Python机器学习库在Python中,工具和库的生态系统可以分为五个主要领域:数据处理数据可视化数值计算模型训练神经网络这可能不全,因为此外还有其他许多的库,它们负责其他任务,并专注于机器学习的一些特定领域,比如自然语言处理和图像识别。使用Python......
  • 机器学习-线性回归-softmax回归 做多分类-10
    1.softmax回归伯努利分布(0-1分布二分类),我们采用Logistic回归(用sigmoid函数映射到0-1之间输出预测概率)建模。那么我们应该如何处理多分类问题?(比如要进行邮件分类;预测病情属于哪一类等等)。对于这种多项式分布我们使用softmax回归建模。什么是多项分布?多项式分布的目标值yε{......
  • 双指针算法概念
    "双指针"是一种在数组或链表中使用两个指针来进行操作的技术。这两个指针通常被称为“快”指针和“慢”指针,或者“左”指针和“右”指针,根据其在数据结构中的移动速度或位置来命名。双指针算法在处理数组或链表的问题中非常有效,可以帮助我们以更优的时间复杂度解决问题。常见的应......
  • 接口的概念
      java中的接口是一种特殊的抽象类,它定义了一组方法,但没有实现这些方法。接口为java程序提供了一种灵活的方式来定义类型,并且可以让不同的类实现相同的接口。接口的实现在java中,使用‘implements’关键字来实现接口,表示该类必须实现接口中声明的所有方法。publicinterfaceAni......
  • 设计模式:程序员的秘密武器(高手必备)
    在过去的几十年的职业生涯中,我观察到许多同事在技术方面取得了显著的进步和能力提升。然而,随着时间的推移,他们似乎逐渐遇到了一个发展的瓶颈。尽管大家都渴望以最快的速度提升自己的技能水平,但他们忽视了一个关键的因素,那就是内功修炼。是的,我相信大家都知道我们所说的内功心法指......
  • 设计模式:程序员的秘密武器(高手必备)
    在过去的几十年的职业生涯中,我观察到许多同事在技术方面取得了显著的进步和能力提升。然而,随着时间的推移,他们似乎逐渐遇到了一个发展的瓶颈。尽管大家都渴望以最快的速度提升自己的技能水平,但他们忽视了一个关键的因素,那就是内功修炼。是的,我相信大家都知道我们所说的内功心法指......
  • 数据表转换为分类Excel(if语句)
    switch/case组件:使用kettle的组件swich/case对原有表进行条件判断,分类:需求:表输入switch/case分类出2个Excel表格:第一步:构建数据流图:如果方向不对,可以进行反转方向:一:表输入:选定对应的表内容:选择t_phoneinfo表二:编辑条件控制switch/case按住shift键,将组件按照下图方式连......
  • 理解数字化转型:3个阶段、2个分类和3类价值
    导读:数字化转型是基于IT技术提供业务所需要的支持,让业务和技术真正产生交互而诞生的。我们可以从概念及内涵、分类、价值等多个维度来理解企业数字化转型。  01数字化转型的概念及内涵数字化转型运用5G、人工智能、大数据、云计算等新一代数字技术,改变企业为客户创造价值的业务......