![]() |
1
0
这是我刚才谈到的OO方法,但根据您对我的评论,我不确定它是否满足您的需求。
第一个a
您可以创建一个转换类,该类对于转换可能很方便
然后是一个“Kingdom”类,它以默认方式显示大小:
两个“家族”类,一个继承了王国版本的
然后是一个“物种”类
这是一个如何以不同方式显示其大小的示例(即使使用相同的
输出
|
![]() |
2
0
战略模式在这里很有用。为不同的计算方法创建策略,并根据给定的 王国 ,则, 家庭 和 种 。
首先创建一个接口来定义
然后确定您需要的不同计算方法,并为每种方法创建单独的类。给这些类一些自解释的名称。
然后根据给定的王国/家族/物种值指定适当的类实例。你不必为王国/家族/物种的每一个组合创造条件。创建默认计算,并仅为需要特殊计算的对象创建条件。
我看不到使用
|
![]() |
3
0
首先,我同意你的观点,你正在某个地方走到尽头。 你说过
你举了很多例子
不同的算法
它们都做同样的事情,那就是计算大小。解决这类问题所需的只是使用
OO并不能解决所有问题。建议阅读: https://www.sicpers.info/2018/03/why-inheritance-never-made-any-sense/ |
![]() |
4
0
是的,但它需要将类型映射到功能,这似乎是您希望通过一些神奇的模式来避免的。没有,如果您要将某些特定功能添加到具体类型,那么您必须在某个地方说什么功能与什么类型匹配。。。你打算如何避免这种情况? 您完全放弃的另一个选项:
就是让每个对象都知道如何做自己的事情。如果这不是一个选项,那么您必须使用某种映射基础架构。 |
![]() |
ZenBa2 · getopt未更改值C 2 年前 |
![]() |
Waeez · 条件未满足php仍在运行 7 年前 |
![]() |
Catz · 正在尝试打印正确数量的“*”以代替数值 7 年前 |
|
privilegedMale · switch语句中的扫描仪问题 7 年前 |
![]() |
rasilvap · 具有多个参数的开关箱 7 年前 |
![]() |
RudziankoÅ · 不可能的类型切换情况:不能有动态类型 7 年前 |
![]() |
Leo Thomas · 循环case语句而不退出shell脚本 7 年前 |