我有两个对象,一个是用户对象,另一个是内容对象。用户对象具有'reads_articles‘或’read_book‘这样的属性。Content对象具有'is_article‘或'is_book’这样的属性。如果这两个属性匹配(即用户reads_articles和Content is_article),那么用户可以看到内容。基本上,我正在寻找最好的解决方案,无需使用switch()语句来解决这个问题。
我也在想,也许我让这件事变得太困难了,或者一个设计模式在这里太费劲了。初步研究表明,策略模式可能是最合适的,但我很难将这个问题建模到该模式中。我不想硬编码测试-我真的想出一个通用的解决方案,检查两个类的属性,并确定该用户是否可以查看内容。
澄清:我的最终目标是一个算法,它将检查用户的属性和内容的属性,并查看它们是否匹配。基本上,我想看看这两个对象是否具有匹配的属性(没有将属性本身硬编码到算法中)并执行一些操作。
不知道我想要的是不是白日梦,所以我想我会问。谢谢你的帮助!
发布于 2013-12-23 13:59:31
您可以使用在……里面_数组检查一个项是否是一个集合的成员。
因此,例如,如果用户阅读文章和书籍,用户对象的“读取这些东西”数组将包含‘条文’和‘图书’(或它们的编码数字等效),您可以在user
对象上有一个名为ReadsContent()
的方法,该方法接受一个内容类型作为参数,并根据该内容类型是否为in_array
返回true或false。
https://softwareengineering.stackexchange.com/questions/222226
复制