@tatesukeさんが投稿したコード一覧

数値のノード

数値のノードなのでメンバとして数値をもたせます。また、数値ノードは評価しても自分自身を返すだけです。超単純。
数値のノードなのでメンバとして数値をもたせます。また、数値ノードは評価しても自分自身を返すだけです。超単純。
/**
 * 数値を表すノードです。
 */
public class Numeric implements Node {

コードを見る
  • タグ:
  • タグはありません

構文木のノードその1

ということでノードをJavaのコードで表すとこんな感じ。
ということでノードをJavaのコードで表すとこんな感じ。
/**
 * 構文木のノードです。
 */
public interface Node {

コードを見る
  • タグ:
  • タグはありません

画面右下をクリックするとウィンドウを表示する

画面右下数ピクセルをクリックするとウィンドウを表示するサンプルコードです。ランチャー的な何かに使えそうですね。画面右下を右クリックすると終了します。 ものっそいお行儀の悪いコードですがこういうこともで...
画面右下数ピクセルをクリックするとウィンドウを表示するサンプルコードです。ランチャー的な何かに使えそうですね。画面右下を右クリックすると終了します。 ものっそいお行儀の悪いコードですがこういうこともで...
package com.tatesuke.javalab;

import java.awt.Dimension;
import java.awt.MouseInfo;
import java.awt.PointerInfo;
コードを見る

未タイトル

するとあら不思議、デコレーターパターンに大変身
するとあら不思議、デコレーターパターンに大変身
public class Main {


	public static void main(String[] args) {
		Foo foo = new FooLogger(new FooImpl());
コードを見る
  • タグ:
  • タグはありません

未タイトル

ところで、チョット違う話ですが、FooProxyクラスのFooImpleへの依存を断ち切り、Fooを外部から注入するようにします。ここではコンストラクタでFooを渡します。
ところで、チョット違う話ですが、FooProxyクラスのFooImpleへの依存を断ち切り、Fooを外部から注入するようにします。ここではコンストラクタでFooを渡します。
public class FooLogger implements Foo {

	private Foo foo;

	public FooLogger(Foo foo) {
コードを見る
  • タグ:
  • タグはありません

未タイトル

もしくは、DIコンテナを用いて、Fooを注入してもらうとか
もしくは、DIコンテナを用いて、Fooを注入してもらうとか
public class Main {

	private Foo foo;

コードを見る
  • タグ:
  • タグはありません

未タイトル

そんな訳で、Fooの生成をファクリトリに任せるのが王道。これでMainはFooFactoryとFooインタフェースにのみ依存します。
そんな訳で、Fooの生成をファクリトリに任せるのが王道。これでMainはFooFactoryとFooインタフェースにのみ依存します。
public class Main {

	public static void main(String[] args) {
		Foo foo = FooFactory.createFoo(); // Fooの生成はファクトリに任せる
コードを見る
  • タグ:
  • タグはありません

未タイトル

んで、実際につかう部分では、newするクラスだけを変更します。たったこれだけで振る舞いを変えられる。すごいね。
んで、実際につかう部分では、newするクラスだけを変更します。たったこれだけで振る舞いを変えられる。すごいね。
public class Main {

	public static void main(String[] args) {
		Foo foo = new FooProxy(); // ここだけ変わる
		foo.foo();
コードを見る
  • タグ:
  • タグはありません

未タイトル

そして、ログ出力担当のProxyクラスを作る。こいつもFooを実装する。ログを出力して実際の処理はFooImplに投げているだけ
そして、ログ出力担当のProxyクラスを作る。こいつもFooを実装する。ログを出力して実際の処理はFooImplに投げているだけ
public class FooProxy implements Foo {

	private FooImpl fooImpl = new FooImpl();

コードを見る
  • タグ:
  • タグはありません

未タイトル

んでもって、さっきまでのFooは実装クラスとしてやる。
んでもって、さっきまでのFooは実装クラスとしてやる。
public class FooImpl implements Foo {

	@Override
	public void foo() {
		System.out.println("foo");
コードを見る
  • タグ:
  • タグはありません