[英]Java inheritance — type subclasses
这更多是关于如何设计概念的
可以有不同类型的问题,例如UserAskedQuestion或BookQuestion-再次扩展了Question(具体类)----这里是3级继承(UserAskedQuestion-> Question-> Post)
这是我想要实现的目标:所有这些实体都存储在数据库中,我想从那里获取(可以是cassandra或Mysql),因此想法是,用户的一行介绍将保存为帖子,如果这样用户提出问题,它将被存储为userAskedQuestion。 但是现在,如果我想知道该用户发布的所有帖子,则应同时包含该帖子(一个衬里)以及(询问的问题)
问题:
问题1
是的,当然,多级继承将为您提供更好的设计。 我认为,宁可让事情复杂化,也可以为您提供更高的High Cohesion
和Less Coupling
。 通过这种设计,您将获得GRAPS
Information Expert
模式。
问题2
请参阅带有示例的Java中的示例多级继承
评论问题的答案:从DB作为Post
类获取对象Post
您可以使用Java Java Doc的 instanceof
运算符:类型比较运算符instanceof
public void doSomething(Post param) {
if( param instanceof Question ) {
System.out.println("param is a Question ");
}
else if( param instanceof Answer) {
System.out.println("param is an Answer");
}
// Even you can check for whether its UserAskedQuestion or BookQuestion also
}
我认为, Decorator
模式是必经之路。
使发布成为界面。 作为实现Post的抽象类的问答。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.