首页 > 解决方案 > 引用 SOLID 原则时,“客户”是什么意思?

问题描述

我目前正在阅读自适应代码:具有设计模式和 SOLID 原则的敏捷编码,并且在每个原则中它们都引用了“客户端”。谁是“客户”?

即使在维基百科中: https ://en.wikipedia.org/wiki/Interface_segregation_principle

在软件工程领域,接口分离原则 (ISP) 指出不应强迫任何客户端依赖它不使用的方法。

谢谢!

标签: solid-principles

解决方案


这里的客户只是指有问题的代码结构的用户。因此,假设您编写了一个Queue由数组支持的类:

class Queue:
    void enqueue(item)
    item dequeue()
    void resize() // doubles the size of the array if it's full

用户可能是您自己,如果您将自己的Queue类导入其他地方,或者可能是其他开发人员,如果他们正在使用您的队列类。然后在这种情况下,您的客户端不依赖于调整大小(队列类在内部调用它,所以它不是供用户调用的),接口应该只公开队列功能所需的内容

interface QueueI:
    void enqueue(item)
    item dequeue()

推荐阅读