现在我需要设计几个类,这几个类需要能描述操作系统的目录—文件结构。我的想法是至少要有一个Dir类代表目录,一个File类代表非目录。另外无论是目录还是文件其实都是系统中的内容,所以应该有个抽象类Content成为它们的父类。
无论是目录,还是文件,它们都必定处于另外一个目录之下,所以它们应该都有一个Dir类的属性parent。既然它们都有这个parent属性,那我就可以把parent这属性放到抽象类Content中。
但现在问题来了,Content类作为Dir类和File类的父类,却有一个属性是Dir类的,这种做法是否被允许?如果不被允许,应该怎么设计才合理,以及为什么我现在这样设计是不合理的?