HeadFirst设计模式第二章阐述的观点是针对接口编程
我的理解是代码设计应该首要关注接口 其次才是实现
针对接口编程可以理解成关注 "怎么做"
针对实现编程对应的就是 "做什么"
针对接口编程的实践
C语言的标准库设计就贯彻了这一理念
ssize_t read(int fildes, void *buf, size_t nbyte);
调用read会去读取对应文件描述符的内容 假设当前处于linux环境下的话
这个文件描述符可能对应一个网卡设备 也可能是一个字符设备
假设编程关注的是"做什么" 那么C语言的接口可能就会变成这样
......
ssize_t read_char_device(int fd, void *buf, sizt_t nbyte);
ssizt_t read_socket_device(int fd, void *buf, size_t nbyte);
......
针对接口编程的设计 将不同的文件描述符的"怎么做"抽象出来形成统一的read接口
达到使用者和维护者的分离,使用者关注统一的抽象接口,维护者关注各自的底层实现
网友评论