![]() |
1
2
对我来说,您的继承并没有实现代码重用和多态性的任何目的。继承并不意味着仅仅为了便于阅读而将一大块代码分成两部分。引入一个额外的层会带来比清晰更复杂的问题,所以我不认为这是你应该在这里做的事情。 我建议您将类A保留为它原来的样子,然后当您找到更有力的理由进行重构时,再这样做。在那一刻,我也同意马克的看法,你应该考虑组合而不是继承。 |
![]() |
2
2
如果要引入一个附加的对象层次结构,那么最好这样做。大多数时候,没有。 总的来说,你应该 偏爱组合胜过继承 . 这个 Strategy 设计模式在这方面非常有用。 |
![]() |
3
0
我不会把班级一分为二。主要原因是 (a)您确定a在域中没有真正的独立存在。 (b)设计的早期优化通常是一个错误——如果出现0.01%的可能性,那么以后重构就足够容易了。
不要为小事操心很明显你已经想清楚了,所以要凭直觉去做。 |
![]() |
4
0
我将一些功能分割为一个单独的类的唯一原因是,当功能块足够重用时,您可以在其他地方消除重复,并且您可以获得一个良好的干净接口,支持这两种用途。否则,您就有可能引入高度耦合的对象,而维护人员很难使用这些对象。 |
![]() |
5
0
既然你说b中的功能非常重要,也许它需要自己的类。然后您可以将b作为a的一部分(如mark所建议的那样,组合而不是继承)。这也可能允许您更容易地测试b中的功能,而无需创建a。当然,这取决于b中的方法使用/滥用a中的数据/方法的程度。也许这些数据/方法也更适合b。如果B不作为一个单独的类来承载它自己的重量,那么我就把它保持原样。 |
![]() |
6
0
从设计的角度来看,没有一个类比另一个类更重要或更不重要。重要的是你设计的程序系统如何精确地映射真实的系统。例如,如果你想在格斗游戏中编程一个人体,你想编程的人体的任何部分都应该是一个单独的类(例如,不是因为在格斗中从来没有使用过指甲,而是一个不重要的类,假设你想有一个指甲类)。当然,一个类可以包含另一个类(也就是说,一个类是anothe类的实例),而那些提供信息的函数方法可以在util类中实现(也就是说,调试类包含调试相关的方法)。 准确地映射真实系统的设计不仅提供编程好处,还提供架构好处,如灵活性和可扩展性。 |
![]() |
7
0
答案是否定的。 为了实现这种类型的代码分离,开发人员应该为类、结构或接口使用partial关键字,并将它们存储在单独的文件中。 逻辑课
职员班
自.NET3.0以来,还可以创建部分方法。 逻辑课
职员班
*分部方法不能有访问修饰符,如public、private或internal。 |
|
simply lemon · python上链表的添加方法 1 年前 |
|
Anonymous · 为什么在这个例子中self和类名的用法不同? 1 年前 |
![]() |
P N Singh · 在CPP Oops中调用对象而不创建它 1 年前 |
![]() |
Muthuraj · 如何创建一个通用工厂来创建某种类型的实例[重复] 1 年前 |
![]() |
Andy Votava · 从父类定义调用学生方法 1 年前 |