Java の素描 #009: リファクタリング:クラスを利用する
‖記事一覧‖ Java.use(better, Swing=Jython) #FIFA World Cup への道《Jython2.5》
Java の素描 〜 Jython 弾丸ツアー:時短プログラミング生活のすすめ 〜
《著》森こねこ、伊藤うさぎ、小粒ちゃん@湘南組《監修》タマゴ倶楽部
第1版♪2003/05/23 ● 第2版♪2006/04/03 ● 第3版♪2010/06/11
|関連記事|
step09: リファクタリング:クラスを利用する
- Java の素描 #009《Jython2.5》
クラスを利用すると、密接に関連するコードの断片を部品(構成要素)として扱えます。
クラスは、複数のメソッド(関数)群を意味のある構成単位として扱う手段を提供します(カプセル化)。
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 は、全チームの略称と正式名称とを要素対に持つ、辞書を管理します。
ここでは、リファクタリングの前後で変化がないことを確認します。
》作業中です《
*1:k,v) for group in groups.values() for team in group for k,v in team.items(