落公的小站

vuePress-theme-reco 落公    2020 - 2021
落公的小站 落公的小站

Choose mode

  • dark
  • auto
  • light
首页
指北
分类
  • 其它
  • IT
  • 想法
标签
时间轴
关于我
网站导航 (opens new window)
GitHub (opens new window)
author-avatar

落公

24

文章

13

标签

首页
指北
分类
  • 其它
  • IT
  • 想法
标签
时间轴
关于我
网站导航 (opens new window)
GitHub (opens new window)
  • 落公指北
  • 基础

  • 后端

  • 考试

面向对象基本概念

vuePress-theme-reco 落公    2020 - 2021

面向对象基本概念

落公 2020-11-01 软考笔记

# 面向对象基本概念

  • 对象
  • 类(实体类、边界类、控制类)
  • 抽象
  • 封装
  • 继承与泛化
  • 多态
  • 接口
  • 消息
  • 组件
  • 模式和复用

# 设计原则

  • 单一职责原则:设计目的单一的类
  • 开放-封闭原则:对扩展开放,对修改封闭
  • 李氏(Liskov)替换原则:子类可以替换父类
  • 依赖倒置原则:要依赖于抽象,而不是具体实现;针对接口编程,不要针对实现编程
  • 接口隔离原则:使用多个专门的接口比使用单一的总接口要好
  • 组合重用原则:要尽量使用组合,而不是继承关系达到重用目的
  • 迪米特(Demeter)原则(最少知识法则):一个对象应当对其他对象有尽可能的了解

# UML

UML

# 设计模式的概念

  • 架构模式
    • 软件设计中的高层决策,例如C/S结构就属于架构模式,架构模式反映了开发软件系统过程中所作的基础设计决策
  • 设计模式
    • 主要关注软件系统的设计,与具体的实现语言无关
  • 惯用法
    • 是最低层的模式,关注软件系统的设计与实现,实现时通过某种特定的程序设计语言来描述构件与构件之间的关系。每种编程语言都有它自己特定的模式,即语言的惯用法。例如引用-计数就是C++语言中的一种惯用法

# 设计模式的分类

设计模式的分类

# 创建型模式

设计模式名称 简要说明
Abstract Factory 抽象工厂模式 提供一个接口,可以创建一系列相关或相互依赖的对象,而无需指定它们具体的类
Builder 构建器模式 将一个复杂类的表示与其构造相分离,使得相同的构建过程能够得出不同的表示
Factory Method 工厂方法模式 定义一个创建对象的接口,但由子类决定需要实例化哪一个类。工厂方法使得了类实例化的过程推迟
Prototype 原型模式 用原型实例指定创建对象的类型,并且通过拷贝这个原型来创建新的对象
Singleton 单例模式 保证一个类只有一个实例,并提供一个访问它的全局访问点

# 结构型模式

设计模式名称 简要说明 速记关键字
Adapter 适配器模式 将一个类的接口转换成用户希望得到的另一种接口,它使原本不相容的接口得以协同工作 转换接口
Bridge 桥接模式 将类的抽象部分和它的实现部分分离开来,使它们独立地变化 继承树拆分
Composite 组合模式 将对象组合成树型结构以表述“整体-部分”的层次结构,使得用户对单个对象和组合对象的使用具有一致性 树形目录结构
Decorator 装饰模式 动态地给一个对象添加一些额外的职责。它提供了用子类扩展功能的一个灵活的替代,比派生一个子类更加灵活 附加职责
Facade 外观模式 定义一个高层接口,为子系统中的一组接口提供一个一致的外观,从而简化了该子系统的使用 对外统一接口
Flyweight 享元模式 提供支持大量细粒度对象共享的有效方法
Proxy 代理模式 为其他对象提供一种代理以控制这个对象的访问

# 行为型模式