常用的几种设计模式简略总结

设计模式简略总结

首先,设计模式是解决特定问题的一系列套路,目的是为了提高代码的可重用性、代码的可读性和代码的可靠性。

软件设计模式重要组成

  1. 模式的名称
  2. 问题:描述了该模式的使用场景和解决了什么问题
  3. 解决方案:提供问题的抽象描述
  4. 效果分析:使用时利弊的权衡

分类

  1. 创建型模式:描述怎么创建对象。
  2. 结构型模式:怎么将类按照某种布局组成更大的结构
  3. 行为模式:怎么将类和对象相互协作完成单独对象无法完成的任务

描述设计模式用到的类图

  1. 类的表示:[可见性]属性名:类型[=默认值] [可见性]名称(参数列表)[:返回类型];其中+、-、#、~表示public private protected friendly 四种可见性。

    image-20200717194603996
  2. 接口的表示:带名字的小圆圈

    image-20200717194801330
  3. 类图:类和接口之间的静态关系模型

    • 虚线表示相关方法的具体实现

    • 类之间的关系(耦合度从弱到强排):

      • 依赖关系:带箭头的虚线,从使用类指向被依赖的类

        类的方法通过局部变量、方法的参数或者对静态方法的调用来访问另一个类(被依赖类)中的某些方法

        image-20200717195056757

      • 关联关系:一类对象与另一类对象之间的联系

        • 一般关联关系:可以是双向的(带两个箭头或者没有箭头的实线来表示),也可以是单向的(一个箭头的实线来表示),箭头从使用类指向被关联的类

          一个类中包含另一个类的对象作为成员变量,上一个依赖是作为方法参数

          image-20200717195600762

      • 聚合关系:整体和部分的关系;带空心菱形的实线来表示,菱形指向整体

        也是成员对象的形式,但是成员可以独立存在

        image-20200717195814778

      • 组合关系:也是整体和部分;实心菱形的实线来表示,菱形指向整体

        部分和整体之间相关联,整体消失了,部分就没了

        image-20200717195948118

      • 泛化关系:一般和特殊的关系,继承关系;空心三角箭头的实线来表示,箭头从子类指向父类

        image-20200717200237501
      • 实现关系:空心三角箭头的虚线来表示,箭头从实现类指向接口

常见设计模式

  1. 单例模式:类只能有一个对象实例

    image-20200717201522837
  2. 原型模式:复制已有的对象到新的对象

    抽象原型类:规定了具体原型对象必须实现的接口
    具体原型类:实现抽象原型类的 clone() 方法,它是可被复制的对象
    访问类:使用具体原型类中的 clone() 方法来复制新的对象。
    

    image-20200717201955412

  3. 工厂模式:

    抽象工厂,具体工厂,抽象产品,具体产品
    

    image-20200717202304565

  4. 抽象工厂模式:

    抽象工厂,具体工厂,抽象产品,具体产品
    

    image-20200717202521810

  5. 建造者模式:

    产品角色,抽象建造者,具体建造者,指挥者
    

    image-20200717202717787

  6. 代理模式:给某对象提供一个代理以控制对该对象的访问

    抽象主题,真实主题,代理类
    代理类和真实类实现同一个接口
    

    image-20200717203343549

  7. 适配器模式:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作

    目标接口,适配者,适配器
    

    image-20200717203931019

  8. 装饰者模式

    抽象构件,具体构件,抽象装饰,具体装饰
    

image-20200717204825121

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值