我正在研究一些我们正在创建对象模型的代码,但模型具有通用密钥。例如
class myContact {
var key;
var value;
}
然后在代码中将它们实例化如下
myContact = new myContact()
myContact.key = 'address'
myContact.value = '123 my address'
myContact2 = new myContact()
myContact2.key = 'secondAddress'
myContact2.value = '123 my other address'
然后将它们附加到父对象,如
myBank = new company();
myBank.addContact(myContact);
myBank.addContact(myContact2);
对我而言,由于模型的定义过于宽泛,因此感觉不对。但是你从类名中知道它将是某种联系信息。
与此同时,我可以看到为什么这可能有用,好像我们希望在将来添加不同类型的联系方式时,这种方法很容易实现。
如果这是一个好习惯,有人可以向我解释一下吗?不好的做法和原因?
我最初的想法:
良好做法
不良做法
任何想法都会非常感激。
编辑:在我一个人的时候添加更多的想法
答案 0 :(得分:0)
在我看来,“自定义字段”并没有什么不好。它在所有允许用户定义自己的字段(例如jira,电话簿等)的系统中相当流行。通常存在一些基本的,预定义的字段/密钥,例如姓名,id,电子邮件等,它们例如被使用。用于搜索或验证。在这段代码中我唯一不喜欢的是贫血模型。如果你创建一个类myClass(更改该名称!),然后公开访问其所有字段,那么为什么需要一个类? class是关于封装的。
答案 1 :(得分:0)
对我而言,由于模型的定义过于宽泛,因此感觉不对。
“医生,我这样做会很痛” - “那就不要那样做了。”
你需要一个松散的模型来表示它吗?然后去吧。如果没有,如果您认为这只是一种负担,请选择更简单的解决方案。
显然,目前没有必要。将来有什么机会出现这种需求?这样的重构将如何影响您的代码库?你甚至可以对此作出假设吗?
在这种情况下,在这种情况下应用YAGNI原则可能是有意义的。