![]() |
1
0
这是我刚才谈到的OO方法,但根据您对我的评论,我不确定它是否满足您的需求。
第一个a
您可以创建一个转换类,该类对于转换可能很方便
然后是一个“Kingdom”类,它以默认方式显示大小:
两个“家族”类,一个继承了王国版本的
然后是一个“物种”类
这是一个如何以不同方式显示其大小的示例(即使使用相同的
输出
|
![]() |
2
0
战略模式在这里很有用。为不同的计算方法创建策略,并根据给定的 王国 ,则, 家庭 和 种 。
首先创建一个接口来定义
然后确定您需要的不同计算方法,并为每种方法创建单独的类。给这些类一些自解释的名称。
然后根据给定的王国/家族/物种值指定适当的类实例。你不必为王国/家族/物种的每一个组合创造条件。创建默认计算,并仅为需要特殊计算的对象创建条件。
我看不到使用
|
![]() |
3
0
首先,我同意你的观点,你正在某个地方走到尽头。 你说过
你举了很多例子
不同的算法
它们都做同样的事情,那就是计算大小。解决这类问题所需的只是使用
OO并不能解决所有问题。建议阅读: https://www.sicpers.info/2018/03/why-inheritance-never-made-any-sense/ |
![]() |
4
0
是的,但它需要将类型映射到功能,这似乎是您希望通过一些神奇的模式来避免的。没有,如果您要将某些特定功能添加到具体类型,那么您必须在某个地方说什么功能与什么类型匹配。。。你打算如何避免这种情况? 您完全放弃的另一个选项:
就是让每个对象都知道如何做自己的事情。如果这不是一个选项,那么您必须使用某种映射基础架构。 |
![]() |
Eris · 纯虚拟成员有什么优势吗(除了他们可能防止的人为错误)? 2 年前 |
|
James Nguyen · Java多态性:为什么返回错误? 7 年前 |
|
Alex Cristea · 如何从另一个类的数组中打印特定行 7 年前 |
![]() |
juztcode · C语言中的静态和动态分辨率++ 7 年前 |
![]() |
Hugo · 具有多态关系的活动记录获取关联模型 7 年前 |
![]() |
pooya13 · 机器代码层上虚函数和条件执行的区别 7 年前 |
![]() |
Nisba · C中子类类型未知的模型类/子类++ 7 年前 |
![]() |
R zu · 使用多次调用的可替换方法初始化 7 年前 |