接口设计
最近在做一个项目,涉及到多方系统之间交互,也必然存在了对外接口设计.
接口本质的定义是什么?
往往谈起接口(Interface)总是会用它将抽象类(abstract)来比较,个人认为这完全没有可比较性.
抽象类本意反应的是对实体属性的抽象.譬如鸟,兔子,鱼。。。对其实体抽象成动物.
接口体现的是对本身实体行为的抽象.譬如兔子会跑,但不会飞,鸟会飞,但不会游泳.
面向接口编程,从意义上讲,更应该理解为对实体抽象体的编程+对行为抽象体的编程,也就是说面向超类型编程.
如何设计一个接口呢?特别是在对外部系统交互中,暴露接口.
1.分清职能,单一职责。
CRUD分开.
对一个product进行CRUD,一种设计是上面的,----execute(Command command).一个接口很简单,就一个方法).从设计上看确实很完美,命令模式,讲操作封装在命令中.
第二种相对来说四个接口,crud分清职能。