【发布时间】:2018-12-07 04:40:30
【问题描述】:
我目前正在阅读自适应代码:采用设计模式和 SOLID 原则的敏捷编码,并且在每个原则中它们都引用了“客户端”。谁是“客户”?
即使在维基百科中: https://en.wikipedia.org/wiki/Interface_segregation_principle
在软件工程领域,接口隔离原则 (ISP) 指出,不应强迫任何客户端依赖它不使用的方法。
谢谢!
【问题讨论】:
标签: solid-principles
我目前正在阅读自适应代码:采用设计模式和 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()
【讨论】: