JavaA2Z

KAB-studio > プログラミング > JavaA2Z > ハンドラとは

ハンドラ

日本語 操作者
英語 handler
ふりがな はんどら、はんどらー
フリガナ ハンドラ、ハンドラー

解説

処理を委託され、その処理をクラスもしくはメソッド
 
「全体の機能」に対して「一部の処理を、ユーザーもしくはプログラマーが任意に変更できるようにする」ために使用されるのがハンドラである。
ハンドラは通常はインターフェイスとして用意され、ハンドラクラスはそのインターフェイス実装クラスとして作り、メソッド実装する。
このクラスを「全体の機能」に登録しておくと、「全体の機能」は「一部の処理」をう際にハンドラクラスメソッド呼び出す
このような仕組みにすることで、「全体の機能」を作り直すことなく「一部の処理」だけを追加したり切り替えることができる。
 
主なハンドラに「イベントハンドラ」がある。
イベントハンドラは、イベントが発生した際にメソッドが呼び出され、そのイベントに対応した処理をうことができる。
この例であれば、GUIのシステムが「全体の機能」、イベントに対応する処理が「一部の処理」となる。
イベントハンドラ以外にも、例外を処理する「エラーハンドラ」、ログの出力先を決める「ログ出力ハンドラ」等がある。
 
ハンドラに似たものにリスナーがある。
ハンドラとリスナーはほぼ同じで、機能としても非常に似ている。
単語としては、ハンドラは古い単語であり、リスナーは新しい単語である。
また、ハンドラはイベント以外の多くの場合に使用されるが、リスナーは主にイベントの処理をう場面で使用される。
そう考えれば、「リスナーはハンドラの一種である」と言えなくもない。

参考サイト


(KAB-studioからのおしらせです)

サンプルプログラム(とか)サンプルを別ウィンドウで表示サンプルをクリップボードへコピー(WindowsでIEの場合のみ)

// Sample.java
import java.io.IOException;
import java.util.logging.Logger;
import java.util.logging.FileHandler;
import java.util.logging.SimpleFormatter;

public class Sample
{
    public static void main( String[] args )
    {
        try
        {
            // ログ名を指定してログクラスを作ります。
            // 通常は、1クラスにつき1ロガーなので、クラス名を付けます。
            Logger logger = Logger.getLogger( "Sample" );

            // ログの出力先を決める「ハンドラ」を作ります。
            // ログを「どこに出力するか」を頼まれ、そのログを
            // 「取り回して」出力するのが、このハンドラの役目です。

            // ログファイルに出力するために、FileHandlerクラスを使用します。
            // 出力ファイル名はlog.txtです。
            FileHandler handler = new FileHandler( "log.txt" );
            // 普通に出力するのでSimpleFormatterクラスを使用します。
            handler.setFormatter( new SimpleFormatter() );
            // 出力先としてhandlerを追加します。
            logger.addHandler( handler );

            // INFOレベルのログを出力します。
            logger.info( "ログ出力します。" );
            // 2005/06/23 14:51:06 Sample main
            // 情報: ログを出力します。

            // Loggerクラスには最初から標準エラー出力への出力が入っているので
            // 標準エラー出力にも出力されています。

            // 同時に、log.txtが実行時のカレントディレクトリにも作られ、
            // その中に同様の出力がされているはずです。
        }
        catch( IOException e )
        {
            // FileHandlerクラスのコンストラクタで指定したファイルが
            // 作れなかったら、例外が投げられます。
            e.printStackTrace();
        }

        // 一番簡単なログの使い方。
        Logger.global.info( "ログを出力します。" );
        // 2005/06/23 14:51:06 Sample main
        // 情報: ログを出力します。

        // このように、Loggerクラスのglobalフィールドを使うと
        // 簡単に標準エラー出力にログ出力できます。
    }
}
// Sample.java
import java.io.IOException;
import java.util.logging.Logger;
import java.util.logging.FileHandler;
import java.util.logging.SimpleFormatter;

public class Sample
{
    public static void main( String[] args )
    {
        try
        {
            // ログ名を指定してログクラスを作ります。
            // 通常は、1クラスにつき1ロガーなので、クラス名を付けます。
            Logger logger = Logger.getLogger( "Sample" );

            // ログの出力先を決める「ハンドラ」を作ります。
            // ログを「どこに出力するか」を頼まれ、そのログを
            // 「取り回して」出力するのが、このハンドラの役目です。

            // ログファイルに出力するために、FileHandlerクラスを使用します。
            // 出力ファイル名はlog.txtです。
            FileHandler handler = new FileHandler( "log.txt" );
            // 普通に出力するのでSimpleFormatterクラスを使用します。
            handler.setFormatter( new SimpleFormatter() );
            // 出力先としてhandlerを追加します。
            logger.addHandler( handler );

            // INFOレベルのログを出力します。
            logger.info( "ログ出力します。" );
            // 2005/06/23 14:51:06 Sample main
            // 情報: ログを出力します。

            // Loggerクラスには最初から標準エラー出力への出力が入っているので
            // 標準エラー出力にも出力されています。

            // 同時に、log.txtが実行時のカレントディレクトリにも作られ、
            // その中に同様の出力がされているはずです。
        }
        catch( IOException e )
        {
            // FileHandlerクラスのコンストラクタで指定したファイルが
            // 作れなかったら、例外が投げられます。
            e.printStackTrace();
        }

        // 一番簡単なログの使い方。
        Logger.global.info( "ログを出力します。" );
        // 2005/06/23 14:51:06 Sample main
        // 情報: ログを出力します。

        // このように、Loggerクラスのglobalフィールドを使うと
        // 簡単に標準エラー出力にログ出力できます。
    }
}

この単語を含むページ

「みだし」に含まれているページ

はてなブックマーク 詳細を表示 はてなブックマーク ブックマーク数
livedoorクリップ 詳細を表示 livedoorクリップ ブックマーク数
Yahoo!ブックマーク 詳細を表示 users
del.icio.us 登録する RSSに登録
サンプルを別ウィンドウで表示
サンプルをクリップボードへコピー(WindowsでIEの場合のみ)
update:2005/06/27
このページは、Javaプログラミング言語についての用語を網羅した辞書「JavaA2Z」の一ページです。
詳しくは「JavaA2Z」表紙の説明をご覧ください。