[英]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.