给OOP专家的一个问题。 - 页 43 1...363738394041424344454647484950...55 新评论 Реter Konow 2019.10.06 18:10 #421 Andrey Barinov: 彼得,我强烈推荐 https://en.wikipedia.org/wiki/Code_Complete 谢谢你。我会试着得到它并阅读它。 Реter Konow 2019.10.06 18:23 #422 Artyom Trishkin: 彼得。这就是为什么我说--不需要无意识的继承。明确分离和分类。 下面是一个例子。 "水果 "这个类别是基础对象。 类--"水果 "和 "蔬菜 "是 "水果 "类的后代。 水果 "类是 "奇异果"、"芒果"、"柠檬 "和 "橙子 "类的父类。 有一个新的类别 "柑橘类水果"。 把它放在 "水果 "类和它的后继者--猕猴桃、芒果、柠檬和橙子之间。 "柑橘是柠檬和橙子的母体。 接下来,--我们将芒果和柠檬交叉,得到--一个李--芒果 对象。 该对象部分包含柑橘类属性,部分包含非柑橘类属性。它有两个父母,这个层次结构不能被优化。 因此,我们有李-芒果对象的多重继承和通往底层水果对象的双重路径:通过柑橘链和芒果链。 在这些链条中,我们必须绕过不必要的家长属性,以保留 "李芒果 "的个性。 Dmitry Fedoseev 2019.10.06 18:29 #423 彼得,这叫做:把自己的脑子搞坏了--想出了无法克服的困难。你需要指定任务,并为其制定课程。 为什么要引入一个名为 "柑橘类水果 "的中级类别?也许只需在动态列表中加入 "柑橘类水果 "的属性,就可以解决这个问题了。 Artyom Trishkin 2019.10.06 18:37 #424 Dmitry Fedoseev:彼得,这叫做:把自己的脑子搞坏了--想出了无法克服的困难。你需要指定任务,并为其制定课程。 为什么要引入一个名为 "柑橘类水果 "的中级类别?也许只需在动态列表中加入 "柑橘 "属性就可以解决这个问题了。 我刚才想写一下这些财产。味道属性将是两种水果属性的平均值。 Dmitry Fedoseev 2019.10.06 18:41 #425 还有这个。OOP毕竟是一个编程工具,而不是一个数据工具(怎么说才对)。该数据工具是一个数据库。 三张桌子。一个表有两列:水果的ID和它的名字。另一个有两列:属性的id和它的名字。第三个有两列:水果ID,财产ID。 因此,有可能无限地增加新的属性,把它们分配给水果,从而获得任何新的水果。 解决问题的手段必须与任务相适应。 Реter Konow 2019.10.06 18:43 #426 Dmitry Fedoseev: 彼得,这叫做:把自己的脑子搞坏了--想出了无法克服的困难。你需要指定任务,并为其制定课程。 为什么要引入一个名为 "柑橘类水果 "的中级类别? 也许只要在动态列表中加入 "柑橘类水果 "的属性,就可以解决这个任务。 那就这样吧。 但是,跨越两个对象的属性会产生一个新的对象,怎么办?新的对象将部分地继承其他两个对象的属性。 如何在几个对象(它的父对象)和基对象之间实现其 "部分 "继承? Dmitry Fedoseev 2019.10.06 18:44 #427 Реter Konow: 那就这样吧。 但是,两个对象的属性交叉产生一个新的对象,怎么办?新的对象将部分地继承另外两个对象的属性。 如何实现它对其他几个对象的 "部分 "继承? 通过应用适当的算法 来解决这一特殊问题。 OOP是一种编程工具,而不是描述周围世界的手段,无论从某种角度看它是如何相互对应的。 Реter Konow 2019.10.06 18:48 #428 Dmitry Fedoseev: 还有这个。OOP毕竟是一个编程工具,而不是一个数据工具(怎么说才对)。该数据工具是一个数据库。 三张桌子。一个表有两列:水果的ID和它的名字。另一个有两列:属性的id和它的名字。第三个有两列:水果ID,财产ID。 因此,有可能无限地增加新的属性,把它们分配给水果,从而获得任何新的水果。 解决问题的手段必须与问题相匹配。 这不是关于属性,而是关于继承。也就是说,属性和方法在对象之间的分布。 新的对象将以不同的组合连接以前的对象的属性,这将增加其与基础对象的链的复杂性。 Dmitry Fedoseev 2019.10.06 18:52 #429 Реter Konow: 这不是关于属性,而是关于继承。也就是说,属性和方法在对象之间的分布。 新的对象将以不同的组合连接以前的对象的属性,这将增加其与基础对象的链的复杂性。 对象本身不会这样做。从数据库中选择一种水果的属性和另一种水果的属性,结合起来(留下一些东西,丢弃一些东西)--你得到一种新的水果--把它加入数据库。 Dmitry Fedoseev 2019.10.06 18:57 #430 即使是自然界也没有无限的可能性 来组合属性。有一定数量的染色体,而且它们被限制在一组属性中。 1...363738394041424344454647484950...55 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
彼得,我强烈推荐
https://en.wikipedia.org/wiki/Code_Complete
彼得。这就是为什么我说--不需要无意识的继承。明确分离和分类。
下面是一个例子。
"水果 "这个类别是基础对象。
类--"水果 "和 "蔬菜 "是 "水果 "类的后代。
水果 "类是 "奇异果"、"芒果"、"柠檬 "和 "橙子 "类的父类。
有一个新的类别 "柑橘类水果"。
把它放在 "水果 "类和它的后继者--猕猴桃、芒果、柠檬和橙子之间。
"柑橘是柠檬和橙子的母体。
接下来,--我们将芒果和柠檬交叉,得到--一个李--芒果 对象。
该对象部分包含柑橘类属性,部分包含非柑橘类属性。它有两个父母,这个层次结构不能被优化。
因此,我们有李-芒果对象的多重继承和通往底层水果对象的双重路径:通过柑橘链和芒果链。
在这些链条中,我们必须绕过不必要的家长属性,以保留 "李芒果 "的个性。
彼得,这叫做:把自己的脑子搞坏了--想出了无法克服的困难。你需要指定任务,并为其制定课程。
为什么要引入一个名为 "柑橘类水果 "的中级类别?也许只需在动态列表中加入 "柑橘类水果 "的属性,就可以解决这个问题了。
彼得,这叫做:把自己的脑子搞坏了--想出了无法克服的困难。你需要指定任务,并为其制定课程。
为什么要引入一个名为 "柑橘类水果 "的中级类别?也许只需在动态列表中加入 "柑橘 "属性就可以解决这个问题了。
还有这个。OOP毕竟是一个编程工具,而不是一个数据工具(怎么说才对)。该数据工具是一个数据库。
三张桌子。一个表有两列:水果的ID和它的名字。另一个有两列:属性的id和它的名字。第三个有两列:水果ID,财产ID。
因此,有可能无限地增加新的属性,把它们分配给水果,从而获得任何新的水果。
解决问题的手段必须与任务相适应。
彼得,这叫做:把自己的脑子搞坏了--想出了无法克服的困难。你需要指定任务,并为其制定课程。
为什么要引入一个名为 "柑橘类水果 "的中级类别? 也许只要在动态列表中加入 "柑橘类水果 "的属性,就可以解决这个任务。
那就这样吧。
但是,跨越两个对象的属性会产生一个新的对象,怎么办?新的对象将部分地继承其他两个对象的属性。
如何在几个对象(它的父对象)和基对象之间实现其 "部分 "继承?
那就这样吧。
但是,两个对象的属性交叉产生一个新的对象,怎么办?新的对象将部分地继承另外两个对象的属性。
如何实现它对其他几个对象的 "部分 "继承?
通过应用适当的算法 来解决这一特殊问题。
OOP是一种编程工具,而不是描述周围世界的手段,无论从某种角度看它是如何相互对应的。
还有这个。OOP毕竟是一个编程工具,而不是一个数据工具(怎么说才对)。该数据工具是一个数据库。
三张桌子。一个表有两列:水果的ID和它的名字。另一个有两列:属性的id和它的名字。第三个有两列:水果ID,财产ID。
因此,有可能无限地增加新的属性,把它们分配给水果,从而获得任何新的水果。
解决问题的手段必须与问题相匹配。
这不是关于属性,而是关于继承。也就是说,属性和方法在对象之间的分布。
新的对象将以不同的组合连接以前的对象的属性,这将增加其与基础对象的链的复杂性。
这不是关于属性,而是关于继承。也就是说,属性和方法在对象之间的分布。
新的对象将以不同的组合连接以前的对象的属性,这将增加其与基础对象的链的复杂性。
对象本身不会这样做。从数据库中选择一种水果的属性和另一种水果的属性,结合起来(留下一些东西,丢弃一些东西)--你得到一种新的水果--把它加入数据库。