这更像是如何设计概念
可以有不同类型的问题,如UserAskedQuestion或BookQuestion - 这再次扩展问题(具体类)----这里3级继承(UserAskedQuestion - > Question - > Post)
这是我想要实现的目标: 所有这些实体都存储在数据库中,我想从那里获取(它可以是cassandra或Mysql),所以想法是,用户的一行介绍将被保存为帖子,如果用户询问问题,它将是存储为userAskedQuestion。但是现在如果我想知道该用户发布的所有帖子,它应该包括帖子(一个班轮)以及(问题)
问题:
答案 0 :(得分:3)
问题1
是的,当然多级继承会给你更好的设计。我认为这会使事情更复杂,因为它会为您提供更多High Cohesion
和Less Coupling
。
通过此设计,您可以从Information Expert
获得GRAPS
模式。
问题2
参见示例Multilevel inheritance in java with example
在评论中回答问题:在将数据库作为Post
类获取后,您可以使用instanceof
的{{1}}运算符
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
}
答案 1 :(得分:0)
我认为,Decorator
模式是要走的路..
发布一个界面。问答作为实现Post的抽象类。