我經常看到這樣的代碼:它是反模式嗎?
public abstract class AbstractDataReader
{
public void Read()
{
var reader = new StreamReader(FileName);
........
}
protected abstract string FileName
{
get;
}
}
public class DataReader : AbstractDataReader
{
protected override string FileName
{
get { return "data.txt"; }
}
}
對於我來說,接縫作爲反模式,爲的DataReader類沒有邏輯,我不能沒有從它繼承使用AbstractDataReader
,這也是奇怪的是我不得不繼承這個類只是爲了指定參數,而且我工作得比較慢,然後只是通過構造函數來傳遞參數。
但我不能找到這個反模式的名稱。
有誰知道嗎?
這是C#代碼,而不是java,爲什麼** Java **標籤? –
@Mauricio:Java標籤由其他用戶編輯,而不是由OP編輯。我已經將它回滾,並以C#的形式正確地重新簽名。 – Ani
它沒有被任何語言標記,因爲我已經發布了它。但我認爲這樣的代碼也可能在Java語言中遇到。 –