Skip to content

为什么基于接口而非实现编程? #4

@yifanzheng

Description

@yifanzheng

基于接口编程是为了将接口与实现分离,封装不稳定的实现,暴露稳定的接口。上游系统面向接口编程而非实现编程,不依赖不稳定的实现细节,这样当实现发生变化的时候,上游系统的代码基本上不需要做改动,以此来降低耦合度,提高程序扩展性,也符合“开闭原则”。

在实际的软件开发中,需求往往是不断变化的。越抽象、越底层、越脱离具体实现的设计,越能提高代码的灵活性,越能应对未知的需要变化。而接口(抽象)就是提高代码扩展性、灵活性、可维护性最有效的手段之一。但是,如果我们实际业务中,某个功能只有一种实现方式,未来也不可能被其他实现方式替代,我们就没有必要为其设计接口,即没有必要基于接口编程,直接使用实现类即可。

最后,对于“接口”,我们不一定只理解成编程语言中的接口。从广义上讲,我们还可以把“接口”理解成一种协议或约定。比如,服务端与客户端之间的“接口”、类库提供的“接口”、通信协议(TCP、HTTP)也可以叫作“接口”。我们在设计任何产品的时候,都可以遵循这条原则。

Metadata

Metadata

Assignees

No one assigned

    Labels

    notesThe content supplement

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions