Java の素描 #018:《余録》リファクタリングの詳細な手順

記事一覧 Java.use(better, Swing=Jython) #FIFA World Cup への道《Jython2.5》

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

《著》森こねこ、伊藤うさぎ、小粒ちゃん@湘南組《監修》タマゴ倶楽部

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

Step18:《余録》リファクタリングの詳細な手順

■ メソッドを抽出する

メソッド _controlPane を抽出するまでの、詳細な手順を示します。

## ---------------------------------------- before
class TopPanel(JPanel):
    def __init__(self, master, *args, **keys):
        ...
        def leftComponent(group):
            listData = WcModel.teamsBelongTo(group)
            view = JList(
                listData,   # java.util.Vector
                valueChanged = self,
                )
            comp = JScrollPane(
                viewportView = view,
                preferredSize = (120,150),
                )
            return comp

ここでは、メソッド leftComponent を事例として取り上げます。

## ---------------------------------------- after #1
    def _controlPane(self, group, **keys):
        def leftComponent(group):
            listData = WcModel.teamsBelongTo(group)
            view = JList(
                listData,   # java.util.Vector
                valueChanged = self,
                )
            comp = JScrollPane(
                viewportView = view,
                preferredSize = (120,150),
                )
            return comp

class に続いて、新たなクラス WcModel を定義した後に、クラス変数 groups の設定を移動します。

## ---------------------------------------- before
    def __init__(self, master, *args, **keys):
        ...
        def splitPane(group):
            comp = JSplitPane(
                ...
                topComponent    = leftComponent(group),
                ...
## ---------------------------------------- after #2
    def __init__(self, master, *args, **keys):
        ...
        def splitPane(group):
            comp = JSplitPane(
                ...
                topComponent    = self._controlPane(group),
                ...

局所関数 leftComponent に代えて、新たなメソッド _controlPane を利用します。

》作業中です《


関連記事

TOP

Last updated♪2010/08/01