2012-01-01から1年間の記事一覧

書き残すという事

思考を書き残す思考を書き残すことはとても重要だ。 人間、一日のうちにかなりの量の思考をしているが、その思考は浅いところで止まってしまうことが多い。 その思考を掘り下げれば本人でも思いもしなかった妙案が思いつくかもしれないのにだ。 頭の中でただ…

ubuntuにTDDの環境入れてみた

TDDの環境が欲しかったのでubuntu11.04にjUnitを入れて環境を構築。 環境構築の際に少しハマったのでメモ。 1.まずはjUnitの本体をjUnitの公式からDLして任意の場所に解凍。 2.環境変数CLASSPATHを通す。この際このstackoverflowにあるようにクラスパスをjUn…

Javaのchar型の数値文字を数値に変換

覚えておきたいのでメモ。Javaでchar型の数値文字をint型に変換するときの簡単な書き方。 コードint IntNum = '1' - '0'; System.out.println(IntNum);IntNum = '1' + '0'; System.out.println(IntNum); 実行結果1 97 どうやら減算でないとだめらしい、加算…

ダブルバッファリングの手順

JavaAppletのダブルバッファリングについて少し学んだので復習。まず、paint()メソッドやupdate()メソッドの引数はAppletそのものの描写部分であるということ。ダブルバッファリングのおおまかな手順は 1.裏画面のためのImageオブジェクトを宣言する。 2.1の…

oblove収穫祭に行って来ました。

募集ページ Toggeterまとめ とりあえず一番気になったことをひとつだけ githubはコードの勉強をするのにめっちゃ使える 間違ったコードを即座に指摘してもらえる(まさかりを投げられる) 指摘されたところを直すことで、自分のコードが良くなる。 他の人のコ…

年号チェッカーサポートページ

何かアレばこの記事へのコメントをどうぞ。

復習:Interpreter

今回はInterpreterパターンについての復習です。 Interpreterパターンは構文解析に特化したデザインパターンです。 それ以外で用いることはほとんどないでしょう。 BNFのスクリプトなどに対する構文解析器を用意するときなどには、非常に有効なパターンと思…

復習:Command

今回はCommandパターンの復習です。 Comandパターンは、命令をクラスとすることで、プログラムの保守性を高めています。 命令をひとつのクラスにすることで、命令の動的な運用を可能にしています。 命令を表すクラスに共通の親クラスを持たせることで、命令…

復習:Proxyパターン

今回はProxyパターンの復習です。 Proxyパターンは、インスタンスを必要になってから生成するというパターンです。多くのインスタンスの中から一つだけ選び出すといったような画面を作成する際に、インスタンス全てを完全な形で用意するのは無駄が多いです。…

復習:Flyweightパターン

今回はFlyweightパターンの復習です。 Flyweightパターンは、一度生成したオブジェクトを使いまわすことによってメモリの使用量などを抑えるデザインパターンです。 オブジェクトの種類が少なく、同じオブジェクトが繰り返し何度も使われるような場合におい…

復習:Stateパターン

今回はStateパターンの復習です。 Stateパターンは状態をクラスとして表現することで、コードの簡略化を行なっています。 どういうことかというと、状態分岐をコードに書くとif文やswitch文を書く必要があり、冗長になってしまいます。 しかも状態をひとつ追…

復習:Memento

今回はMementoパターンの復習です。Mementoパターン 状態の保存を行うパターンです。 状態に必要な情報をインスタンスとして保存します。 また、そのインスタンスから元の状態に復帰する機能もつけます。 アンドゥ機能などを実装する際に役に立つパターンで…

復習:Observer

今回はObserverパターンについての復習です。 Observerパターンは複数のオブジェクトがひとつのオブジェクトを監視する際に使用するパターンです。Observerパターン 通知とそれに対する処理を行うパターン。 subject、被観察者とobserver、観察者の2つのオブ…

復習:Mediator

今回はMediatorパターンの復習です。Mediatorパターンは、複数のオブジェクトが相互に作用し、状態を変更させるようなときに使用するパターンです。 全てのオブジェクトを統括するクラス(Mediator)を用意します。 個々の部品となるクラス(Colleague)は自分の…

復習:Facade

今回はFacadeパターンの復習です。 Facadeパターンは複雑な処理に関する操作の窓口をシンプルにすることで クラスの操作を簡略化しているパターンです。 複雑なものを単純に見せる、裏で動いている処理を隠蔽することで単純化しています。 Facadeパターンが…

復讐:Chain of Responsibility

今回はChain of Responsibilityパターンの復讐です。 Chain of Responsibility このパターンは何らかの問題に対して複数の解決ロジックを連鎖的に適用することによって問題の解決を図るパターンです。 解決ロジックの追加のしやすさなどがキモとなっています…

復習:Visitor

今回はVisitorパターンの復習です。 Visitorパターン Visiorパターンは、データ構造とそれに対する処理を分離させるパターンです。 データ構造とそれに対する処理をそれぞれ別クラスにして分離させます。 また処理を行うメソッドは全て同一の名称となってお…

復習:Decorator

今回はDecoratorパターンの復習です。Decorator Decoratorパターンは、あるクラスを別のクラスに内包させ、そこで機能付加を行うパターンです。 内包するクラスは内包されるクラスを継承しています。 これがこのパターンのキモでしょう。 このように機能追加…

復習:Composite

Composite今回はCompositeパターンの復習です。 Compositeパターンはあるオブジェクトとそれらを格納するオブジェクトを同一視したパターンです。 オブジェクトを格納するクラスと、格納されるオブジェクトを表現したクラスは共に同一のスーパークラスを持ち…

Strategy

今回はStrategyパターンの復習です。 Strategyパターンは、アルゴリズムの切り替えを容易に行うためのパターンです。 何らかの動作をするときのアルゴリズムをクラスにして、分離させることで切り替えを容易にしています。 アルゴリズムという考え方そのもの…

Bridge

今回はBridgeパターンの復習です。 Bridgeパターンは機能と実装の分離を目的としたパターンです。 実装と機能を分けることで、実装によらない機能追加、機能によらない実装の追加などが可能となります。 実装と機能が同じクラスに入っているよりも、両者を組…

AbstractFactory

今回はAbstractFacory、抽象工場の復習です。 抽象工場 このパターンは、BuilderパターンとFactoryMethodパターンの合成です。 特定の構造を持ったモノを生成するBuilderパターンに対して、 その生成過程を抽象化するFactoryMethodを適用することで複数の種…

Builder

今回はBuilderパターンの復習です。 Builderパターンは構造を持つインスタンスを段階的に組み上げて作成します。 まず、全体を部分に分割し、分割した要素を組み上げていくように作成します。 Builderパターンの要素 全体を作成するのに必要な全ての要素(部…

備忘録

メモ 抽象クラスには抽象メソッドも具象メソッドも書ける。 インターフェースには具体的なメソッドは書けない。 抽象クラスを継承したクラスは全ての抽象メソッドを実装しなくてはいけない。

Prototype

今回はPrototypeの復習です。 Prototypeパターン このではインスタンスの生成を、既存のインスタンスのコピーで行います。 これは、クラスとして表現するにはあまりにも複雑すぎるインスタンスの生成を行う際に威力を発揮します。 例えばペイントソフトなど…

Singleton

今回はSingletonの復習です。 Singletonパターンは 「インスタンスがひとつしかないようなクラス構造」です。 コレをどのように活用するかと言うと 「ソフトウェアの設定について記述しておくクラス」 などに使うことが挙げられます。 Singletonのポイントと…

復習:FactoryMethod

今回はFactoryMethodの復習です。 FactoryMethodはインスタンス生成の部分を共通化したTemplateMethodと言えます。 TemplateMethodの別バージョンですね。FactoryMethodではTeplateMethodで見られた骨組みの共通化という部分は同じです。しかしインスタンス…

復習:TemplateMethod

今回はTemplateMethodの復習です。TemplateMethodは動作の骨組みを抽象クラスで規定しておき、 それに対して具体的な動作を具象クラスに記述するパターンです。まさにMethodのtemplate(雛形)、そのまんまですね。このパターンには、もとからあるコードに対し…

復習:Adapter

今日はデザインパターンAdapterの復習です。Adapterパターンは既存のクラスからのメッセージを変換し、適切なメッセージにして出力するパターンです。 要はラッパークラスですね。このパターンの肝はすでにテストを通過したユニットに適用することでコストを…

復習:iterator

デザインパターンの復習をしています。 今回はIteratorです。 Iterator 「数え上げを行う仕組みを提供する」 この仕組みを利用するメリットとしては、 ・データの種類に関わらず共通の操作で数え上げが可能となる、操作の共通化。 が挙げられます。集合体を…