![]() |
1
1
这里的字典几乎是一种原始类型;它用于存储键值对,而不是其他(?)。我看不出你需要把它换成不同的实现,这也是IOC有用的地方。 作者在IOC中更有意义(你做到了):我可以看到以后需要以xml或字符串等形式输出。 在“责任太多”方面。根据您描述此类功能的句子,1)检测特殊属性,2)呈现一些js。这里可能存在分裂的可能性。如果这个类只是检测到属性并在C#对象中返回那些检测到的属性,该怎么办。然后其他一些类,可能是JavascriptRenderer,可以接受这些属性并转换为javascript。
我也经常发现自己对不遵循编码原则感到偏执。在这个时候,我只是尽我最大的努力。当原则显而易见或有用时,我会运用原则,但当我不确定时,我会尽量不太担心,继续前进。我安慰自己,当代码变得难以处理时,我可以回去重构。 |
![]() |
2
1
单一责任原则定义如下:
因此,这一切都是为了找到正确的措辞。然而,原因只有在上下文中才有意义,换句话说,在特定的抽象层次上。通过移动抽象层次,代码改变了其对单一责任原则的一致性。 您的经验可能与这样一个事实有关,即您对所使用的框架的知识有所提高,因此您的理解正在转向更具体的抽象(接近框架内部)。在这个级别上,您的代码做得太多了(因为您预见到了许多需要更改的原因)。做一个心理练习,尝试转移到应用程序的抽象,它做什么,为什么做,并重新评估与SRP的一致性。 |
![]() |
KiraHoneybee · 具有构造函数参数的模板化类 3 年前 |
![]() |
nick2225 · 隐式调用复制构造函数? 3 年前 |
![]() |
nohaga · 为什么在本例中p3需要默认构造函数? 3 年前 |
![]() |
Aadil Hoda · 为什么类类型的成员需要初始化? 3 年前 |
![]() |
EloiGG · 具有任意类型的变量的可数的C++函数 3 年前 |