Python 弾丸ツアー/Java: JavaBeans 準拠 ... step 1: ウィンドウを表示する

OOPデザインパターンリファクタリング

Python.use(better); Python 弾丸ツアー /Java: JFC/Swing 編
>>> JavaBeans 準拠
step 1: ウィンドウを表示する
《Python3.1|Jython2.5|IronPython2.6》

《著》小粒ちゃん@湘南組《監修》小泉ひよ子とタマゴ倶楽部
第0版♪2001/03/02 ● 第1版♪2003/05/23 ● 第4版♪2010/03/08

step 1: ウィンドウを表示する

《課題》指定したタイトルを持つウィンドウを表示したい。


《テストケース》 ̄次のコマンドを実行すると、ウィンドウが現われます。ウィンドウを閉じると、アプリケーションが終了します。


$ javac Swing.java
$ java Swing

 ̄まず、Java で記述したコードをコンパイル javac して、それを実行 java します。


$ jython swingFrame.py

 ̄次に、Jython で記述した同等のコードを実行 jython します。

Java

 ̄まず、Java で記述したコードを示します。

import javax.swing.JFrame;
import java.awt.Dimension;

public class Swing {
    private static void tips() {
        JFrame frame = new JFrame("JFC/Swing");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setPreferredSize(new Dimension(150, 50));
        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                tips();
            }
        });
    }
}
Jython

 ̄次に、これと同等のコードを Jython で記述すると、次のようになります。

from javax.swing import JFrame
from java.awt import Dimension

def tips():
        frame = JFrame("Swing")
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
        frame.setPreferredSize(Dimension(150, 50))
        frame.pack()
        frame.setVisible(True)

tips()

 ̄これらを比較すると、Java と良く似ているものの、Jython ではより簡潔に表現できるのが分かります。それを象徴するのが、main が必要でないことです。また、クラスも必須ではありません。

《Point》単純にバイト数だけを比較すると、Jython では Java の約半分のコードで、同等の機能を実現できるのが分かります。

    Java    535  1.92  1
    Jython  279  1     0.52

    Java    449  1.86  1
    Jython  241  1     0.54
    Jython *228  0.95  0.51

TOP
》作業中です《