1.面向接口编程
一、核心定义
面向接口编程(Program to an Interface)是软件工程核心设计思想,不以具体类为依赖,而以接口为 “契约” 解耦 “功能定义” 和 “具体实现”;核心逻辑:调用方只关心 “能做什么”(接口定义的功能),不关心 “怎么做”(实现类的具体逻辑)。
三、核心价值(软件工程核心考点)
1.解耦:修改实现逻辑不影响调用方(如从 JDBC 换 MyBatis,仅改实现类,Service 层不动);
2.可扩展:新增实现只需加类(如加 EmpDaoRedisImpl 缓存实现),不改动原有代码(符合开闭原则);
3.易测试:可通过模拟实现类(如 EmpDaoMockImpl 返回假数据)测试,无需依赖真实数据库;
4.标准化:接口是团队协作契约,多角色只需约定接口,可并行开发。
五、新手避坑
1.❌ 误区:写了接口就是面向接口编程→ 核心是 “依赖接口类型”,而非仅定义接口;
2.❌ 误区:所有类都写接口→ 仅需 “多实现、易替换” 场景(如 DAO 层、服务层),简单工具类(如 StringUtil)无需接口;
3.✅ 原则:接口只定义 “做什么”,绝不含具体实现;实现类专注 “怎么做”,严格遵守接口契约。
六、核心总结(极简记忆)
面向接口编程 = 接口定规则 + 实现类做具体活 + 调用方只认接口;核心是 “依赖抽象,不依赖具体”。
JavaWeb开发思考 文章被收录于专栏
// 之前的学习笔记一直是保存在本地,现在上传到牛客,和大家一起分享java开发学习过程中的思考,可能有不严谨的地方,欢迎一起交流
查看7道真题和解析