接口隔离原则~

简介: 接口隔离原则~

接口隔离原则是面向对象设计原则中的一条原则,它的核心思想是将大接口拆分为多个小接口,客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小的接口上,接口应该具有单一功能,不应该包含不相关或不需要的方法,以便提高系统的灵活性和可维护性。它同时也要求接口的设计应该稳定,一旦设计好后,就不应该频繁地进行修改。

实例:

假设我们定义图形的基本操作有绘制,移动,缩放,对于某些特殊的功能,并不是每个图形所必须的,那么根据接口隔离原则,我们不应该将其特殊的功能定义在包含图形基本操作的接口中,而是写在一个单独的接口中,以便需要该功能的类可以实现该接口

// Shape接口---定义图形的基本操作
 interface Shape {
    void draw();
    void move(int x, int y);
    void resize(int width, int height);
}
// Rotatable接口---“特殊功能"图形的旋转
  interface Rotatable {
    void rotate(double angle);
}
// 矩形类不需要实现新添加的旋转功能,不需要实现Rotatable接口
class Rectangle implements Shape {
    // 实现绘制、移动和缩放方法...
    @Override
    public void draw() {
        // 绘制矩形...
    }
    @Override
    public void move(int x, int y) {
        // 移动矩形...
        }
    @Override
    public void resize(int width, int height) {
        // 缩放矩形...
    }}
// 圆形类---需要实现新添加的旋转功能,需要实现Rotatable接口
public class Circle implements Shape, Rotatable {
    @Override
    public void draw() {  // 绘制圆形...
        }
    @Override
    public void move(int x, int y) {
        // 移动圆形...
    }
    @Override
    public void resize(int width, int height) {
        // 缩放圆形...
    }
    @Override
    public void rotate(double angle) {
        // 旋转圆形...
    }
}


相关文章
|
8月前
|
机器学习/深度学习 存储 PyTorch
PyTorch内存优化的10种策略总结:在有限资源环境下高效训练模型
在大规模深度学习模型训练中,GPU内存容量常成为瓶颈,特别是在训练大型语言模型和视觉Transformer时。本文系统介绍了多种内存优化策略,包括混合精度训练、低精度训练(如BF16)、梯度检查点、梯度累积、张量分片与分布式训练、
312 14
PyTorch内存优化的10种策略总结:在有限资源环境下高效训练模型
|
图形学
【制作100个unity游戏之27】使用unity复刻经典游戏《植物大战僵尸》,制作属于自己的植物大战僵尸随机版和杂交版12(附带项目源码)
【制作100个unity游戏之27】使用unity复刻经典游戏《植物大战僵尸》,制作属于自己的植物大战僵尸随机版和杂交版12(附带项目源码)
296 0
|
SQL 存储 关系型数据库
mysql SQL必知语法
本文详细介绍了MySQLSQL的基本语法,包括SELECT、FROM、WHERE、GROUPBY、HAVING、ORDERBY等关键字的使用,以及数据库操作如创建、删除表,数据类型,插入、查询、过滤、排序、连接和汇总数据的方法。通过学习这些内容,读者将能更好地管理和操
286 0
|
Rust Shell 开发者
7步开始rust(自定义环境安装与vscode开发环境配置)
本文档详细记录了当改变Rust安装路径至特定目录(如 `/home/local_rust`)时,如何在VSCode环境中正确配置Rust开发环境的过程。主要包括:设置环境变量、使用清华大学镜像安装Rust及更新镜像源、手动部署 `rust-analyzer`、安装标准库源码、安装与配置VSCode插件等七个步骤,确保开发者能够顺利搭建并使用定制化的Rust开发环境。
1888 0
|
前端开发 芯片
用于生物电测量的低功耗八通道模拟前端芯片 Low-Power, 8-Channel AFE for Biopotential Measurement
此低功耗八通道模拟前端芯片专为生物电测量设计,集成了八个低噪声放大器与24位高精度ADC,支持125SPS至8kSPS数据速率及多种增益设置。芯片配备内置时钟、参考电压源与断线检测等功能,并兼容多种电极类型。适用于心电图、肌电图和个人健康监测设备,采用VQFN与TQFP封装,尺寸紧凑,确保医疗设备兼具性能与便携性。
|
存储 JSON 前端开发
JSON格式转换工具:快速、简单、高效处理JSON数据
JSON格式转换工具:快速、简单、高效处理JSON数据
1033 1
|
数据可视化
TCGA|根据somatic mutation绘制突变景观图(oncoplot)和基因词云
TCGA|根据somatic mutation绘制突变景观图(oncoplot)和基因词云
314 0
|
弹性计算 固态存储 数据可视化
阿里云服务器租用费用
2023年阿里云服务器租用费用,阿里云轻量应用服务器2核2G3M带宽轻量服务器一年108元,2核4G4M带宽轻量服务器一年297.98元12个月
361 0
|
算法 安全 数据安全/隐私保护
数据结构上机实践第八周项目4-字符串加密
数据结构上机实践第八周项目4-字符串加密
271 0
数据结构上机实践第八周项目4-字符串加密
|
网络安全 双11 数据库
双11创业者正确的打开方式:上创业节一键解决您的创业难题
阿里云双11创业节火热进行中,亿元上云津贴、万元现金红包等您来领!
双11创业者正确的打开方式:上创业节一键解决您的创业难题
下一篇
开通oss服务