由于我正在工作的方式,我发现自己在几个级别的类中嵌套类,我想知道它是否可以被视为代码气味,如果是,如果有可能有更好的方法设计这个。
简而言之,情况是我在一个单独的文件中有一个helpers
类,它包含各种辅助方法和辅助类。在那里,我在类中的类中构造事物的原因是使它们的用法尽可能详细和可读,同时还保持事物在“级别”和层次结构中分组和组织,但有时我最终会使用很长的用法为:
helpers.Calendar.Periods.Semester.startDate
(那是class.class.class.class.property
。我刚刚做了这个,但你明白了。)
这样做是'错'吗?有没有更好的方法来实现这一目标?
答案 0 :(得分:1)
有事实,有意见。
事实上,有一个名为Law of Demeter的东西(已在SO标签law-of-demeter上出现)。根据是的,这是代码味道。
但是,您是否想遵循给出的建议是您的决定。它有优点和缺点,并且相互加权,并且得出结论是基于意见的,我们不会在这里做。
我们的姐妹网站上有相关讨论,例如this。询问具体的设计指南是否会对您有所帮助,可能会更好地放在那里。
答案 1 :(得分:0)
我正在做类似的事情,区别在于我正在做类似helpers.Calendar.semesterStartDate
的事情。
即使有些时候它可能会令人讨厌,我也不认为它有气味。
此外,ist的结构将所有内容准确地放在与其相关的位置。如果我想查找一个学期的开始日期,我不会找startDate
之类的内容,但我认为Semester
与Calendar
而不是helpers.Calendar.Periods.Semester.startDate
类有关,真的在寻找{{1}}。
当然每个人都有自己喜欢的东西,但我不认为这样做是没有错的。