七大设计原则
单一职责原则
接口隔离原则
客户端不应该被迫依赖于它不使用的方法;一个类对另一个类的依赖应该建立在最小的接口上。
接口拆分,避免实现不需要的方法
依赖倒置原则
- 高层模块不应该依赖低层模块,两者都应该依赖其抽象;
- 抽象不应该依赖细节,细节应该依赖抽象。
- 依赖倒转(倒置)的中心思想是面向接口编程
- 依赖倒转原则是基于这样的设计理念:相对于细节的多变性,抽象的东西要稳定的 多。以抽象为基础搭建的架枃比以细节为基础的架构要稳定的多。在java中,抽象 指的是接口或抽象类,细节就是具体的实现类
- 使用接口或抽象类的目的是制定好规范,而不涉及任何具体的操作,把展现细节的 任务交给他们的实现类去完成
依赖关系传递的三种方式
- 接口传递
- 构造方法传递
- setter方式传递
迪米特法则
最小知道原则
里氏替换法则
尽量不重写父类方法
开闭原则
- 开闭原则(Open Closed Principle)是编程中最基础、最重要的设计原则
- 一个软件实体如类,模块和函数应该对扩展开放(对提供方),对修改关闭(对使用方)。用抽象构建框架,用实现扩展细节。
- 当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已 有的代码来实现变化。
- 编程中遵循其它原则,以及使用设计模式的目的就是遵循开闭原则。
合成复用原则
UML
Unified Modeling Language
统一建模语言
Dependency
要点
- 类中用到了对方
- 如果是类的成员属性
- 如果是方法的返回类型
- 是方法接收的参数类型
- 方法中使用到
Association
- 关联关系实际上就是类与类之间的联系,他是依赖关系的特例
- 关联具有导航性:即双向关系或单向关系
- 关系具有多重性:如“1”(表示有且仅有一个),“0…”(表示0个或者多个), “0,1”(表示0个或者一个),“n…m”(表示n到 m个都可以),“m…*”(表示至少m 个)。
Generalization
- 泛化关系
- 依赖关系的特例
- 实际就是继承关系
Implementation
实现关系实际上就是A类实现B接口,他是依赖关系的特例
Aggregation
聚合关系(Aggregation)表示的是整体和部分的关系,整体与部分可以分开。聚 合关系是关联关系的特例,所以他具有关联的导航性与多重性。
Composite
组合关系:也是整体与部分的关系,但是整体与部分不可以分开。
评论前必须登录!
注册