Javaなどのオブジェクト指向言語にはInterfaceと言われる仕組みが必ずあります。Interfaceの事を「役割」と私は解釈しています。
役割とは「何ができるか?」「何をすべきか?」のみを定義して、それを請け負う実体は何でも構いません。例えば「ジュース売り」という役割を定義します。
1) 注文を聞く
2) お金をもらう
3) 指定されたジュースとお釣りを渡す
これらを実行するのがジュース売りの役割です。この役割を請け負えるものは何があるでしょう?
A) 人間
B) 自動販売機
C) ロボット
というように役割を請け負えるものは複数あり得ます。
Interfaceも同じで、Interfaceを請け負えるclassを複数実装出来ます。これを応用すると、
・共通部品が呼び出すのはInterface(枠割)として定義したメソッド
・その役割を実装した(請け負った)、つまり部品から呼び出されるclassは画面機能とバッチ機能で別にする
というような事が可能で、この事により部品の共通化の度合いを高めることが可能です。
この時に、個別業務のアプリケーション → 共通部品 → 個別業務のアプリケーション(役割の個別実装class) という呼び出しが行われ、2つ目の矢印の呼び出しの事を「イベントを上げる」と言い、役割の個別実装classの事をイベントリスナーと言います。
ブラウザ上で動くJavaScriptでは個別アプリケーションにイベントが頻繁に上がってきますよね? あれと同じ理屈で動く仕組みをJavaでもInterfaceによって作成可能です。
株式会社つつじでは、高度なプログラミング技術を駆使した大規模なシステム開発に挑戦することができます。現在、プログラマー(未経験可)と経験者エンジニアを絶賛募集中!ご興味のある方がいらっしゃいましたら、下記募集よりお気軽にエントリーください!まずはカジュアル面談にてお会いできるのを楽しみにしています。