针对接口编程及敏捷编程

本文发自于对平时编程习惯上的一些个人见解,还不至于牵扯到方法学的层面,尽管如此,也可能会招来许多不同的看法,只要是觉得经世致用就行。首先从耳熟能详的针对接口编程说起

是否总是针对接口编程

在初通软件设计时,针对接口编程这一理念似乎是宇宙真理(软件世界里并没有真理部),而且对它的解释是

具体类包含实现细节,而抽象类则只呈现概念

当然很在理,也很权威。

但针对接口的前提是什么呢?是在设计一个与外部系统交互的 API 情况下。比如要提供一个用户注册接口给外部,可以共同约定好接口为

void register(String username, String password) throws RegistrationException;

  并且这个接口应该是稳固的,然后各自去实现或完成调用细节,即使实现未完成调用端也可以通过 Mock 来进行单元测试。

然而实际中对针对接口编程的理解很容易变为凡是非工具类,数据类都先声明一个接口挂单一实现类,类结构中就类似下面那样 阅读全文 >>