所以,我有一个面向对象的任务。其中很小一部分是制作一个由节点组成的图形,它可以是类型类型或类型产品。
该类别只有一个名称([a-zA-Z0-9] +)作为参数。
该产品有一个名称([a-zA-Z0-9] +)和一个id(> = 0)。
一开始只创建了一个节点,在product中有两个对象类别,其中两个都为null,并且根据输入我创建了两个事物之一的实例,一切都很好。
我真的想了一下,在我检查了讲座后,我发现了抽象类的东西:D。我的想法是使节点摘要和产品和类别扩展节点,因为:
类别具有Name和toString的setter和getter 产品具有名称和ID(当然)和toString的setter和getter。
Name的Setter,getter和toString是相同的。 Product的构造函数有所不同,因为它也设置了ID。
所以, 它会以这种方式工作吗,它更好吗? 我可以创建一个节点,然后输入后说 - >此节点来自类型
答案 0 :(得分:0)
如果它是抽象的,你不能只创建一个节点。
你应该得到输入,并且可能是想要创建的类型,并为那个创建适当的非抽象类。
或者,您可以将它们创建为类别,如果用户键入Id,则创建新产品并将数据从第一个对象复制到第二个对象。但这没有多大意义。
答案 1 :(得分:0)
似乎类别应该只是产品的一部分。那就是你有一个类别类,以及一个有两个属性的产品类:category class和id。这样,您可以在图表上的任何点创建一个类别,然后如果它是一个产品,则将其传递给第二个构造函数以给它一个id。
答案 2 :(得分:0)
我认为这应该是一个抽象方法,验证每个节点类型可以独立实现。
Node建议这是您正在导航的状态图。也许你想要一种方法来进入或离开该状态。每种类型都可以将任何需要的东西放入其中。接口和策略模式将在这里提供帮助。
将图表与已完成的内容分开。