接口设计

      最近在做一个项目,涉及到多方系统之间交互,也必然存在了对外接口设计.

      接口本质的定义是什么?

      往往谈起接口(Interface)总是会用它将抽象类(abstract)来比较,个人认为这完全没有可比较性.

      抽象类本意反应的是对实体属性的抽象.譬如鸟,兔子,鱼。。。对其实体抽象成动物.

      接口体现的是对本身实体行为的抽象.譬如兔子会跑,但不会飞,鸟会飞,但不会游泳.

      面向接口编程,从意义上讲,更应该理解为对实体抽象体的编程+对行为抽象体的编程,也就是说面向超类型编程.

      如何设计一个接口呢?特别是在对外部系统交互中,暴露接口.

      1.分清职能,单一职责。

         CRUD分开.

          
 

接口设计

        对一个product进行CRUD,一种设计是上面的,----execute(Command command).一个接口很简单,就一个方法).从设计上看确实很完美,命令模式,讲操作封装在命令中.

        第二种相对来说四个接口,crud分清职能。