![]() |
1
4
您可以做的是让tempcontrollers负责使用通用存档程序来保持自身。
通过保持这种方式,控制器不关心实际值是如何存储的,但您仍然保持对象内部的良好封装。 现在,您可以定义一个所有归档类都可以实现的抽象归档类。
格式化存档程序可以用一种方法完成,而格式化存档程序可以用另一种方法完成。
您可以添加另一个控制器类型并将其传递给任何格式化程序。您还可以创建另一个格式化程序并将其传递给任何控制器。 |
![]() |
2
1
在C或其他支持此功能的语言中,您可以执行以下操作:
|
![]() |
3
0
我会有一个“临时控制器”,通过一个GETStATE方法,返回一个映射(例如在Python中的一个DICT,在JavaScript中的一个对象,C++中的一个STD::MAP或STD::HASMAP等),它的属性和当前值——什么是卷绕的?!很难简单,它是完全可扩展的,并且完全脱离了它的用途(显示、序列化和C)。 |
![]() |
4
0
嗯,这很大程度上取决于你所说的文件格式。 如果它们基于键/值组合(包括嵌套的键/值组合,如XML),那么拥有某种松散类型的中间内存对象,可以将其抛出到适当的文件格式编写器中,这是一种很好的方法。 如果没有,那么您将得到一个场景,其中有四种对象和文件格式的组合,每个场景都有自定义逻辑。在这种情况下,可能无法为每个可以处理任一控制器的文件格式使用单个表示。换句话说,如果不能概括文件格式编写器,就不能概括它。 我不太喜欢控制器有导出器的想法——我只是不喜欢了解存储机制和其他内容的对象(他们可能知道存储的概念,并通过一些DI机制向他们提供了一个特定的实例)。但我认为你同意这一点,原因基本相同。 |
![]() |
5
0
如果FormatBexporter采用AdvancedTempController,则可以创建一个使TempController符合AdvancedTempController的桥接类。不过,您可能需要向AdvancedTempController添加某种getFormat()函数。 例如:
还有使用键到值映射方案的选项。FORMATAExporter导出/导入键“设定点”的值。FORMTBExporter导出/导入键“Setpoint”和“RateControl”的值。这样,旧的formataexporter仍然可以读取新的文件格式(它只是忽略了“ratecontrol”),而formatbexporter可以读取旧的文件格式(如果缺少“ratecontrol”,则使用默认值)。 |
![]() |
6
0
在OO模型中,对象方法作为一个集合是控制器。如果使用OO编程,将程序分为M和V更有用,而不是C。 |
![]() |
7
0
我想这就是 Factory method pattern 将适用 |
![]() |
Schadre · C-plus编码错误 2 年前 |
![]() |
Nithin K · 即使类属性的类型正确,也会获取异常 2 年前 |
![]() |
amirreza870 · Python OOP-更改类文本 3 年前 |
![]() |
A_K · 使用cat或打印方法打印部分内容的子集闭包 3 年前 |
![]() |
Mo Fatah · 如何使用Python类打印数独板? 3 年前 |