asatoの技術的な日常日記

「成長に最大の責任をもつ者は、本人であって組織ではない。自らと組織を成長させるためには何に集中すべきかを、自らに問わなければならない」  非営利組織の経営 - ピーター・ドラッカー

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

コード進化

コード変化・進化の理由を考えていきたいと思う。

簡単なのからいこう。

たとえば、ユーザインタフェースの調整や変更。ボタンや文字の配置場所に伴うコードの変更。

具体例:

public class DungeonSelectionViewDrawer {
...
public void draw(Graphics g) {
...
g.fillRect(baseX, baseY + 10, 100, 3); // 位置などの調整
...
}
}


変更の影響範囲としては:

  • メソッド内のみのコードの変更
  • クラス内のみのコードの変更
  • クラス外へのコードの変更

が考えられる。

一番目は、例で言えば、draw メソッド内のみでのコードの変更。

二番目は、例で言えば、draw メソッド内のコードをリファクタリングして、private メソッドを抽出するような変更:

public class DungeonSelectionViewDrawer {
...
public void draw(Graphics g) {
...
drawLine(g);
...
}
private void drawLine(Graphics g) {
g.fillRect(baseX, baseY + 10, 100, 3); // 位置などの調整
}

}


三つめは、例で言えば、よく使いそうな汎用的な描画コードをユーティリティクラスへ移動させるような変更:

public class GraphicUtils {
...
public static void drawLine(Graphics g, int x, int y, int w) {
g.fillRect(x, y, w, 3);
}

...
}
public class DungeonSelectionViewDrawer {
...
public void draw(Graphics g) {
...
GraphicUtils.drawLine(g, baseX, baseY + 10, 100);
...
}
}

スポンサーサイト

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://asatohan.blog77.fc2.com/tb.php/33-acd604dd
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。