1,类之间的关系
依赖(1类方法调用2类,2类作为参数)
关联(2类为1类中属性)
组合(2类作为1类属性且在构造方法中作为组成部分,不可分离存在)
聚合(2类作为1类属性且在构造方法中作为组成部分,整体与部分的关系,但可分离存在)
泛化(继承)
接口与实现()
2.面向对象设计原则
设计原则名称 |
设计原则简介 |
重要性 |
单一职责原则 (Single Responsibility Principle, SRP) |
类的职责要单一,不能将太多的职责放在一个类中 |
★★★★☆ |
开闭原则 (Open-Closed Principle, OCP) |
软件实体对扩展是开放的,但对修改是关闭的,即在不修改一 个软件实体的基础上去扩展其功能 |
★★★★★ |
里氏代换原则 (Liskov Substitution Principle, LSP) |
在软件系统中,一个可以接受基类对象的地方必然可以接受一 个子类对象 |
★★★★☆ |
依赖倒转原则 (Dependency Inversion Principle, DIP) |
要针对抽象层编程,而不要针对具体类编程 |
★★★★★ |
接口隔离原则 (Interface Segregation Principle, ISP) |
使用多个专门的接口来取代一个统一的接口 |
★★☆☆☆ |
合成复用原则 (Composite Reuse Principle, CRP) |
在系统中应该尽量多使用组合和聚合关联关系,尽量少使用甚 至不使用继承关系 |
★★★★☆ |
迪米特法则 (Law of Demeter, LoD) |
一个软件实体对其他实体的引用越少越好,或者说如果两个类 不必彼此直接通信,那么这两个类就不应当发生直接的相互作 用,而是通过引入一个第三者发生间接交互 |
★★★☆☆ |
3.设计模式
软件模式的基础结构由4个部分构成:问题描述、前提条件(环境或约束条件)、解法和效果。设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。
学习方法:(1)模式动机与定义
(2)模式结构与分析
(3)模式实例与解析
(4)模式效果与应用
(5) 模式扩展
根据其目的(模式是用来做什么的)可分为创建型(Creational),结构型(Structural)和行为型(Behavioral)三种: 创建型模式主要用于创建对象。 结构型模式主要用于处理类或对象的组合。 行为型模式主要用于描述对类或对象怎样交互和怎样分配职责。
根据范围,即模式主要是用于处理类之间关系还是处理对象之间的关系,可分为类模式和对象模式两种: 类模式处理类和子类之间的关系,这些关系通过继承建立,在编译时刻就被确定下来,是属于静态的。 对象模式处理对象间的关系,这些关系在运行时刻变化,更具动态性。
范围\目的 |
创建型模式 |
结构型模式 |
行为型模式 |
类模式 |
工厂方法模式 |
(类)适配器模式 |
解释器模式 模板方法模式 |
对象模式 |
抽象工厂模式 建造者模式 原型模式 单例模式 |
(对象)适配器模式 桥接模式 组合模式 装饰模式 外观模式 享元模式 代理模式 |
职责链模式 命令模式 迭代器模式 中介者模式 备忘录模式 观察者模式 状态模式 策略模式 访问者模式 |
来源:https://blog.csdn.net/ooo0ooo0ooo0ooo/article/details/102758939