面向对象设计的六大原则和设计模式UML图


一、面向对象的六大设计原则

1、指导思想

  • 可维护性 Maintainablity
    修改功能,需要改动的地方越少,可维护性越好
  • 可复用性 Reusability
    代码可被重复使用
    写出自己总结的类库
  • 可扩展性 Extensibility/Scalability
    添加功能,无需修改原来代码
  • 灵活性 Flexibility/mobility/adaptability
    代码接口可以灵活调用

2、设计原则

  • 单一职责原则(Single Responsibility Principle)
    一个类,负责单一的职责
    高内聚,低耦合
  • 开闭原则(Open-close Principle)
    对扩展开放,对修改关闭:尽量在不修改原来代码的情况下扩展
    抽象化和多态是开闭原则的关键
  • 里氏替换原则(Liscov Substitution Principle)
    所有使用父类的地方,必须能够透明的使用子类对象
  • 依赖倒置原则(Dependency Inversion Principle)
    依赖对象,不依赖具体
    面向抽象编程
  • 接口隔离原则(Interface Segregation Principle)
    每一个接口应该承担自己独立的角色,不干不该自己干的事
    避免子类实现不需实现的方法
    需要对客户提供接口时,暴露最小的接口
  • 迪米特原则(Law of Demeter)
    尽量不要和陌生人说话
    一个对象应该对其他对象有最小的了解
    在迪米特法则中,对于一个对象,非陌生人包括以下几类:
    1. 当前对象本身(this)
    2. 以参数形式传入到当前对象方法中的对象
    3. 当前对象的成员对象
    4. 成员对象是集合,则集合中的所有元素都是朋友
    5. 当前对象所创建的对象

3、总结

  • OCP:总纲,对扩展开放,对修改关闭
  • SRP:类的职责要单一
  • LSP:子类可以透明替换父类
  • DIP:面向接口编程
  • ISP:接口的职责要单一
  • LOD:降低耦合

二、设计模式

1、分类

在这里插入图片描述

2、UML类图

2.1 创建型模式

Abstract Factory
在这里插入图片描述
Builder
在这里插入图片描述

Factory Method
在这里插入图片描述
Prototype
继承标记接口Cloneable。
深拷贝和浅拷贝详见:https://blog.csdn.net/weixin_41832813/article/details/118090534

Singleton
单例,使用枚举实现单例

2.2 结构型模式

Adapter
在这里插入图片描述
Bridge
在这里插入图片描述
Composite
在这里插入图片描述
Decorator
在这里插入图片描述
Facade
【GOF】的书中指出:在门面模式中,通常只需要一个门面类,并且此门面类只有一个实例,换言之它是一个单例类。当然这并不意味着在整个系统里只能有一个门面类,而仅仅是说对每一个子系统只有一个门面类。
个人理解:对外统一暴露的接口。

在这里插入图片描述
Flyweight
在这里插入图片描述
Proxy
详见:https://blog.csdn.net/weixin_41832813/article/details/118310499
在这里插入图片描述

2.3 行为型模式

ChainOfResponsibility
在这里插入图片描述
Command
在这里插入图片描述
Interpreter
每一条文法规则都可以表示为一个类,因此可以方便地实现一个简单的语言。
在这里插入图片描述
Iterator
在这里插入图片描述
Mediator
在这里插入图片描述
Memento
在这里插入图片描述
Observer
在这里插入图片描述
State
在这里插入图片描述
Strategy
Comparator接口是比较器接口(策略模式)
在这里插入图片描述
Template Method
在这里插入图片描述
Visitor
在这里插入图片描述


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值