Extract Subclassとは大きなクラスの一部を切り出してサブクラスを作成することです。
あるクラスの中に、場合によってはデータが入らなかったり、nullを返すような要素が含まれていた場合、そのような要素はサブクラスに移す候補となります。
そうする事によって、nullのチェックや、ある特徴を持ったデータをif文などで判断して処理することが容易になります。
リファクタリング前:
public class AirTicket
{
public DateTime FlightDateTime;
public string FlightNumber;
public string Price;
//これらのプロパティはFirstClassのチケットの時だけの属性のため、サブクラスに抽出する
public bool FirstClass;
public string PreferrableFirstClassDinner;
public string PreferrableFirstClassMovie;
//...
}
リファクタリング後:
public class AirTicket
{
public DateTime FlightDateTime;
public string FlightNumber;
public string Price;
//...
}
public class FirstClassAirTicket : AirTicket
{
public bool FirstClass;
public string PreferrableFirstClassDinner;
public string PreferrableFirstClassMovie;
//...
}
|
Copyright(c) 2012 WoodenSoldier Software |