2011-07-05 41 views
0

我有類似以下內容:多個抽象類的多層次繼承

public interface A 
{ 
    .... 
} 

public abstract class AbstractClass implements A 
{ 
    // Implements some methods from interface 
    .... 
} 

public abstract class GroupOne extends AbstractClass 
{ 
    // Implements some methods from interface 
    // Define couple of abstract methods 
    ..... 
} 

public abstract class GroupTwo extends AbstractClass 
{ 
    // Implements some methods from interface 
    // Define couple of abstract methods 
    ..... 
} 

public class ClassImpl extends GroupOne 
{ 
    // Implement couple of abstract methods from GroupOne 
} 

public class AnotherClassImpl extends GroupTwo 
{ 
    // Implement couple of abstract methods from GroupTwo 
} 

在我的情況下,interace和抽象類中提供的庫的一部分。使用這個庫的應用程序需要編寫擴展第二級抽象類的Impl類。 AbstractClass中的所有類都有一些常用功能,然後在組類中有一些特定於組的功能。

這是一個很好的設計嗎?我問這個問題的原因是我很少遇到涉及多個抽象類的類層次結構。

+1

看起來不錯,雖然我們並不真正瞭解上下文。 該設計表示每個類都以接口定義的方式運行。 Group類共享一些方法(通過AbstactClass),但以不同的方式實現一些方法。每個組都有另一個類的列表,以非常特定的方式實現所需的方法。 你確定你想要很多抽象類嗎?如果他們有道理,那就很好。 – c00kiemon5ter

+0

@ c00kiemon5ter:是的,沒錯。 – Prasanna

回答

2

我看到這樣的設計沒有錯。 ArrayList是具有兩個抽象父類的最常用的類之一。使GroupOneGroupTwo接口的其他抽象方法擴展到A接口可能會很有用。