设计模式23种

admin 2022年1月6日01:37:49评论73 views字数 1923阅读6分24秒阅读模式

设计模式

URL中的类图以及类图之间的关系

类、接口和类图

类:是具有相同属性、方法和关系的对象的抽象,它封装了数据和行为,具有封装性、继承性和多态性等三大特性。

接口:接口是一种特殊的类,它具有类的结构但不可被实例化,只可以被子类实现,它包含抽象操作,但不包含属性。它包含了类和组件对外可见的动作。

类图: 是用来显示系统中的类、接口、协作以及它们之间的静态结构和关系的一种静态模型。它主要用于描述软件系统的结构化设计,帮助人们简化对软件系统的理解,它是系统分析与设计阶段的重要产物,也是系统编码与测试的重要模型依据。

类之间的关系

  • 依赖关系:依赖(Dependency)关系是一种使用关系,它是对象之间耦合度最弱的一种关联方式,是临时性的关联。在代码中,某个类的方法通过局部变量、方法的参数或者对静态方法的调用来访问另一个类(被依赖类)中的某些方法来完成一些职责。

  • 关联关系:关联(Association)关系是对象之间的一种引用关系,用于表示一类对象与另一类对象之间的联系,如老师和学生、师傅和徒弟、丈夫和妻子等。关联关系是类与类之间最常用的一种关系,分为一般关联关系、聚合关系和组合关系。

  • 聚合关系:聚合(Aggregation)关系是关联关系的一种,是强关联关系,是整体和部分之间的关系,是 has-a 的关系。

  • 组合(Composition)关系也是关联关系的一种,也表示类之间的整体与部分的关系,但它是一种更强烈的聚合关系,是 cxmtains-a 关系。

  • 泛化(Generalization)关系:是对象之间耦合度最大的一种关系,表示一般与特殊的关系,是父类与子类之间的关系,是一种继承关系,是 is-a 的关系。

  • 实现(Realization)关系是接口与实现类之间的关系

对象设计原则

  • 开闭原则的含义是:当应用的需求改变时,在不修改软件实体的源代码或者二进制代码的前提下,可以扩展模块的功能,使其满足新的需求
  • 里氏替换原则通俗来讲就是:子类可以扩展父类的功能,但不能改变父类原有的功能。也就是说:子类继承父类时,除添加新的方法完成新增功能外,尽量不要重写父类的方法
  • 依赖倒置原则的目的是通过要面向接口的编程来降低类间的耦合性,所以我们在实际编程中只要遵循以下4点,就能在项目中满足这个规则。
    • 每个类尽量提供接口或抽象类,或者两者都具备。
    • 变量的声明类型尽量是接口或者是抽象类。
    • 任何类都不应该从具体类派生。
    • 使用继承时尽量遵循里氏替换原则。
  • 单一职责原则的核心就是控制类的粒度大小、将对象解耦、提高其内聚性
  • 接口隔离原则(Interface Segregation Principle,ISP)要求程序员尽量将臃肿庞大的接口拆分成更小的和更具体的接口,让接口中只包含客户感兴趣的方法
  • 迪米特法则:如果两个软件实体无须直接通信,那么就不应当发生直接的相互调用,可以通过第三方转发该调用。其目的是降低类之间的耦合度,提高模块的相对独立性。
  • 合成复用原则:它要求在软件复用时,要尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现

设计模式

创建型模式

创建型模式的作用就是创建对象,说到创建一个对象,最熟悉的就是 new 一个对象,然后 set 相关属性。但是,在很多场景下,我们需要给客户端提供更加友好的创建对象的方式,尤其是那种我们定义了类,但是需要提供给其他开发者用的时候。

  • 简单工厂模式最简单;
  • 工厂模式在简单工厂模式的基础上增加了选择工厂的维度,需要第一步选择合适的工厂;
  • 抽象工厂模式有产品族的概念,如果各个产品是存在兼容性问题的,就要用抽象工厂模式。
  • 单例模式就不说了,为了保证全局使用的是同一对象,一方面是安全性考虑,一方面是为了节省资源;
  • 建造者模式专门对付属性很多的那种类,为了让代码更优美;
  • 原型模式用得最少,了解和 Object 类中的 clone() 方法相关的知识即可

结构型模式

结构型模式旨在通过改变代码结构来达到解耦的目的,使得我们的代码容易维护和扩展。

  • 代理模式是做方法增强的,
  • -配器模式是把鸡包装成鸭这种用来适配接口的,
  • 桥梁模式做到了很好的解耦,
  • 装饰模式从名字上就看得出来,适合于装饰类或者说是增强类的场景,
  • 门面模式的优点是客户端不需要关心实例化过程,只要调用需要的方法即可,
  • 组合模式用于描述具有层次结构的数据
  • 享元模式是为了在特定的场景中缓存已经创建的对象,用于提高性能。

行为型模式

行为型模式关注的是各个类之间的相互作用,将职责划分清楚,使得我们的代码更加地清晰。

观察者模式 责任链模式 模板方法模式 策略模式 迭代子模式 命令模式 状态模式 备忘录模式 访问者模式 中介者模式 解释器模式

参考文章:

软件设计模式概述

设计模式也可以这么简单

FROM :blog.cfyqy.com | Author:cfyqy

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年1月6日01:37:49
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   设计模式23种https://cn-sec.com/archives/722001.html

发表评论

匿名网友 填写信息