タグ

software designに関するaiueo010101のブックマーク (6)

  • 2009-06-08 - Strategic Choice

    Presentation-Abstraction-Control協調するエージェントの階層という形で、対話型ソフトウェアシステムのための構造を定義する。前提エージェントを利用する対話型システムの開発。課題対話型システムを「協調するエージェントの集合」と捉えることができることがしばしばある。システム機能に対して水平分割(機能の種類)を行うだけではなく、垂直分割(同じ機能だが時系列で区別等)を行わなくてはいけないこともある。フォースエージェントがしばしば自分自身の状態とデータを保持している。対話型エージェントのそれぞれが、独自のインタフェースを提供する。時間の経過につれて、システムが拡張される。解決策対話型アプリケーションを、PACエージェントから構成される木状階層に構造化する。トップレベルに位置付けられるエージェントが1つ存在し、中間レベルに複数のエージェントが、そして、ポトムレベルにはそれ

  • 2009-06-07 - Strategic Choice

    Model-View-Controllerユーザインタフェースとそのモデルとの一貫性を保証する。前提人間とコンピュータのインタフェースに柔軟性を持たせた対話型アプリケーション。課題ユーザインタフェースは要求仕様の変更の影響を被ることが多い。複数のユーザインタフェースパラダイムを簡単に実現できなければならないというニーズがある。フォース同一情報を別々のウインドウに異なる形式で表示する必要がある。 例えば、バーチャート(棒グラフ)やパイチャート(円グラフ)という形式で情報が表示される。データに対して行われた操作が、直ちにアプリケーションの表示と動作に反映されなければならない。ユーザインタフェースの変更を容易に行うことができる。 実行時においても、その変更を行うことができることが望ましい。異なるルック&フイール標準のサポートやそれらの間の移植が、アプリケーションの中核となるコードに影響してはなら

  • ギャングオブフォー

    final class MyClass { private static final MyClass instance = new MyClass(); private MyClass(){}; public static MyClass getInstance(){ return instance; } public void hogehoge(){ System.out.println("hogehogeメソッド"); } } class Test{ public static void main(String aa[]){ MyClass m = MyClass.getInstance(); m.hogehoge(); } } javaの場合定数の初期化は一度しか行われないのが保障されているので必ず一度しかインスタンス化はおこなわれないです。 しかしコンストラクターが呼び出せてしまう

    ギャングオブフォー
  • 矢沢久雄の早わかりGoFデザインパターン(1) | 日経 xTECH(クロステック)

    今回は、パターンを1つだけ紹介します。「Mediatorパターン」です。GoFでは、それぞれのパターンの「目的]「背景」「効果」などが明示されています。私も、ちょっと真似をしてみましょう。複数のオブジェクトを組み合わせてプログラムの機能を実現するという目的において、オブジェクト間の関連がゴチャゴチャになってしまうという背景(問題)があり、Mediatorパターンの採用によって関連をキレイに整理できるという効果があります。説明だけでは、何のことだかわからないと思いますので、具体例をお見せしましょう。 図1[拡大表示](1)をご覧ください。これは、UML(Unified Modeling Language、ユーエムエル)と呼ばれる表記法で記述されたプログラムの設計図です。UMLでは、四角形の中に下線付きで名前を書いてオブジェクトを表し、関連のあるオブジェクトを矢印で結んで示します。ここで関連

    矢沢久雄の早わかりGoFデザインパターン(1) | 日経 xTECH(クロステック)
  • PHPでのシングルトンパターン - id:anatooのブログ

    まあ自分の場合はこう書くかなあ <?php class Klass { private function __construct() { } static function getInstance() { static $obj = null; return $obj ? $obj : $obj = new self; // 5.3以降なら return $obj ?: $obj = new self; } } Klass::getInstance(); ネタ元: http://blog.asial.co.jp/483

    PHPでのシングルトンパターン - id:anatooのブログ
  • 最小のDIコンテナ in PHP - id:anatooのブログ

    DIコンテナがなにやら大仰なものとして勘違いされているような気がしたので、機能を極限まで削ぎ落とした最小のDIコンテナを書いた。 これにはAOPは当然ないし、設定ファイルなどもない。 <?php // DIContainer.php class DIContainer { protected $componentFactory; function __construct(ComponentFactory $c) { $this->componentFactory = $c; $c->accept($this); } function get($name) { $name = strtolower($name); if (!isset($this->objects[$name])) { $this->objects[$name] = $this->componentFactory->get(

    最小のDIコンテナ in PHP - id:anatooのブログ
  • 1