我有一个接口,可以在CRUD api中获取Action对象。要首先创建一个Action,您必须调用我的CreateAction()工厂方法。
要复制,我应该让用户调用重复的方法吗?客户端可以轻易地复制每个字段,但可以在以后添加字段,客户端也不会知道它们。
现在我只是让客户端调用Create来获取第二个实例,然后将所有内容复制到名称之外。这样可行。但它感觉不对,因为对象可能会发展,而客户端只会复制它所知道的字段。
答案 0 :(得分:1)
但感觉不对,因为对象可能会发展,而客户端只会复制它所知道的字段。
这是一种很好的感受,培养它。
客户端可以简单地复制每个字段,但可以在以后添加字段,客户端也不会知道它们。
考虑一下如何在浏览器中运行网页。
客户端可能会获得一些资源,然后四处寻找可以让客户端请求重复的可供性。这可能看起来像是一个新资源的链接,它会向客户提供一个表单。当客户端提交表单时,该消息会向服务器传达创建副本的请求。
作为集成协议,客户端部分看起来像
关键点一:如果您不希望客户端复制资源,只需从表示中删除链接即可。
关键点二:您可以向表单添加可编辑内容,这将允许理解语义的客户端进行自己的更改。不理解语义的哑客户端将忽略这些字段,因此您需要确保提供保留向后兼容性的默认值。