Java の素描 #009: リファクタリング:クラスを利用する

記事一覧 Java.use(better, Swing=Scala) #FIFA World Cup への道《Scala2.8.0》

Java の素描 Scala 弾丸ツアー:時短プログラミング生活のすすめ 〜

《著》小粒ちゃん@湘南組《監修》タマゴ倶楽部

第1版♪2003/05/23 ● 第2版♪2006/04/03 ● 第3版♪2010/06/11● 第4版♪2010/07/14

》作業中です《

step09: リファクタリング:クラスを利用する

クラスを利用すると、密接に関連するコードの断片を部品(構成要素)として扱えます。

クラスは、複数のメソッド(関数)群を意味のある構成単位として扱う手段を提供します(カプセル化)。

class WcModel:
    groups = {
        "A": [                          # Group A
            {"rsa": "South Africa"},
            {"mex": "Mexico"},
            {"uru": "Uruguay"},
            {"fra": "France"},
            ],
        ...
        }
    teams = sorted([team
        for group in "ABCDEFGH"
        for teams in groups[group] for team in teams])
    teamNames = dict*1

class TopPanel(JPanel):
    def __init__(self, master, *args, **keys):
        ...
        def leftComponent():
            listData = WcModel.teams
            ...
            return comp
        ...
    def __call__(self, e):  # javax.swing.event.ListSelectionEvent
        value = e.source.selectedValue
        print(":: %s"%WcModel.teamNames[value])

クラス属性 teams は、全チームの略称を整列した(アルファベット順に)リストを管理します。
クラス属性 teamNames は、全チームの略称と正式名称とを要素対に持つ、辞書を管理します。

ここでは、リファクタリングの前後で変化がないことを確認します。


TOP
》作業中です《

関連記事

  • class
  • INDEX《Swing》JSplitPane


Last updated♪2010/08/17

*1:k,v) for group in groups.values() for team in group for k,v in team.items(