【问题标题】:Abstract classes in JavaJava中的抽象类
【发布时间】:2015-03-09 15:54:32
【问题描述】:

所以,我有一个面向对象的任务要做。一小部分是制作一个由节点组成的图形,它可以是类型类别或类型产品。

类别只有一个名称 ([a-zA-Z0-9]+) 作为参数。

产品具有名称 ([a-zA-Z0-9]+) 和 id (>=0)。

一开始,a 只创建了一个节点,产品中有两个对象类别,其中两个都是 null,并且根据输入,我创建了两个事物之一的实例,一切都很好。

我真的在其中考虑了一下,在检查了讲座后,我发现了关于抽象类的东西:D。不,我的想法是让节点抽象,产品和类别扩展节点,因为:

Category 有用于 Name 和 toString 的 setter 和 getter 产品具有名称和 ID(当然)和 toString 的 setter 和 getter。

Name 的 Setter、getter 和 toString 是相同的。 Product 的构造函数有所不同,因为它也设置了 ID。

所以, 它会以这种方式工作吗,会更好吗? 我可以创建一个节点,然后在输入之后说 -> 这个节点来自类型类别

【问题讨论】:

  • 你的问题现在真的是abstract。考虑添加一些代码使其具体化..

标签: java class graph nodes abstract


【解决方案1】:

如果它是抽象的,你不能只创建一个节点。

您应该获得输入,其中可能是要创建的类型,并为该类型创建适当的非抽象类。

或者,您可以将它们创建为类别,如果用户键入一个 Id,则创建一个新产品并将数据从第一个对象复制到第二个对象。但这没有多大意义。

【讨论】:

    【解决方案2】:

    似乎类别应该只是产品的一部分。也就是说,您有一个类别类和一个具有两个属性的产品类:类别类和 id。这样,您可以从图表上的任何点创建一个类别,然后如果它是一个产品,则将其传递给第二个构造函数以赋予它一个 id。

    【讨论】:

      【解决方案3】:

      我觉得这应该是一个抽象的方法,验证每个节点类型都可以独立实现。

      Node 表明这是您正在导航的状态图。也许您想要一种在进入或离开该状态时触发的方法。每种类型都可以放入他们需要的任何东西。界面和策略模式在这里会有所帮助。

      将图表与已完成的内容分开。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-06
        • 2011-08-24
        • 1970-01-01
        • 1970-01-01
        • 2016-07-21
        相关资源
        最近更新 更多