Java 复合模式:根是简单的复合模式吗?
为了在Java中实现复合模式,我有一个抽象类组件,其中包含函数Java 复合模式:根是简单的复合模式吗?,java,design-patterns,composite,Java,Design Patterns,Composite,为了在Java中实现复合模式,我有一个抽象类组件,其中包含函数getChild(inti),add(Component c),remove(Component c),forAllDo()和getChildren() 它由Leaf和Composite两个类实现 Leaf几乎为每个函数都抛出了一个异常-只有forAllDo()对它做了一些处理。 您将如何实现根目录? 我将它理解为一个普通的复合类——所有函数都具有相同的意义。你有没有不属于这种情况的参数?简而言之:组件应该是一个接口,而不是一个抽象类
getChild(inti)
,add(Component c)
,remove(Component c)
,forAllDo()
和getChildren()
它由Leaf和Composite两个类实现
Leaf几乎为每个函数都抛出了一个异常-只有forAllDo()
对它做了一些处理。
您将如何实现根目录?
我将它理解为一个普通的复合类——所有函数都具有相同的意义。你有没有不属于这种情况的参数?简而言之:
组件
应该是一个接口,而不是一个抽象类Leaf
和Composite
都实现了组件
接口。因此,对于客户端来说,根是否是叶是无关紧要的,因为它实现了组件
接口。如果树中只有一个元素,则根是叶,因为没有复合对象的意义。在其他情况下,它会变成一个组合。Root必须是一个组合
,才能构建层次结构。在组合上操作的客户机不需要知道层次结构,直到客户机在您的Composite
类中的abstract
方法上操作为止,使用abstract类应该可以