java接口传参还是传对象
boolean add(int cpid, String app_key, String app_secret, String app_name, String app_des);
boolean add(User user);
2者对于代码维护和修改会带来多大差异性?欢迎提出自己的建议!谢谢
当然关键是看多个参数是否可归纳到一个对象里面去。
关键是你对add的定义,可从这样的角度出发:
是“增加一个人”,或是“增加一个动物”,还是“增加一个头和一个躯干”?(注意:从句子角度说都是正确的,但面向具体领域就有所选择)
对于这种问题,可以先放开任何技术和代码,自己用话语来描述一遍就有结果,喊了这么久的面向领域,难道还不懂么,领域中各种元定义是先于技术和代码的。
接口是一种函数,无副作用,遵循断言原则,也就是契约设计,接口可以使用断言方式进行测试,输入参数是前置条件,输出结果是后置条件。
因此,只要你的参数方便Assert之类断言测试即可,输入参数对象一般是一种规格模式Specification,类似一种查询条件,之所以称为条件,其必有内聚性,必能用一个边界包装它。
如果不能归纳为一个对象,那么这个接口设计有问题,因为不利于断言测试,或者说无法测试,因此,编写接口时,测试用例先写也是这个道理。