设计模式:七大设计原则、UML类图

七大设计原则

单一职责原则

  1. 一个类应该只负责一项职责。当A类负责两个不同职责:职责1、职责2。当职责1需求改变时,可能造成职责2执行错误,此时应该将A类颗粒度分为A1类、A2类。

接口隔离原则

  1. 客户端不应该依赖它不需要的接口。B继承A。但是B只用到A用A1方法,没用到A2方法。需要将接口A进行拆分接口A1、接口A2。B继承A1。

依赖倒转原则

  1. 高层模块不应依赖底层模块,二则都应该依赖抽象,抽象是指接口或抽象类
  2. 面向接口或抽象编程,指定规范,具体细节由实现类完成

里氏替换原则

  1. 子类中尽量不要重写父类
  2. 适当情况下可以通过聚合、组合、依赖来解决问题

开闭原则

  1. 编程中最基础最重要的原则
  2. 抽象构建框架,实现扩展细节
  3. 软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是修改已有代码
  4. 使用设计模式的目的,就是遵循开闭原则

最少知道原则(迪米特法则)

  1. 一个类对自己依赖的类知道的越少越好,尽量将逻辑分装在内的内部。对外除提供public方法,不泄露任何信息。
  2. 只与直接朋友通信。成员变量、方法参数、方法返回值的中类是直接朋友。局部变量中的类不是直接朋友。就是说陌生类最要不要以局部变量的形式出现在类内部。

合成复用原则

  1. 尽量使用合成、聚合方式,而不是使用继承。

UML类图

泛化(Generalization)

继承使用空心三角形+实线表示。鸟类继承抽象类动物。
在这里插入图片描述

实现(Realization)

使用空心三角形+虚线表示。大雁需要飞行,就要实现飞()接口
在这里插入图片描述

依赖(Dependency)

依赖关系用虚线箭头表示。即A类有方法的参数是B类。
在这里插入图片描述

关联(Association)

A类关联了B类。(聚合组合是特殊的关联)
关联关系用实线箭头表示。

聚合(Aggregation)

表示一种弱的‘拥有’关系,即has-a的关系。即A类有个成员变量B,这个B是通过set方法设置进来的。
聚合关系用空心的菱形+实线箭头表示。

组合(Composite)

组合是一种强的‘拥有’关系,是一种contains-a的关系,即A类有个成员变量B,当A实例化时,B即实例化。比如构造里面包含B参数。或者成员变量直接new。
组合关系用实心的菱形+实线箭头表示。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值