2012-10-01から1ヶ月間の記事一覧

C++でデザインパターンを実装していこうよ 第12回 Builderパターン

やっと半分きましたね。今回はBuilderパターンです。オブジェクトの生成に関するパターンとして、すでにAbstractFactoryパターンやFactoryMethodパターンを扱いましたね。これらがどっちかというと、"あるインタフェースのどの実装を実体化するか"的なことに…

C++でデザインパターンを実装していこうよ 第11回 Prototypeパターン

Prototypeパターンは、初めて知ったときもぴんときませんでしたが、いま読み直してもぴんときませんでした。今回の例で言えば、ColorPrototypeインタフェースの任意の子クラスのコピーコンストラクタを、子クラスの種類を知らなくてもclone()メソッドから呼…

C++でデザインパターンを実装していこうよ 第10回 FactoryMethodパターン

適切な実装の集合を実体化するという目的のパターンで、AbstractFactoryとあんまり変わりません。AbstractFactoryは委譲で行っていたことを、FactoryMethodパターンでは継承を使って行っている、と考えて良いんだと思います。「これはAbstractFactory!こっち…

C++でデザインパターンを実装していこうよ 第9回 Singletonパターン

Singletonパターンは非常にわかりやすいんじゃないでしょうか。Modern C++ Designには別の方法を使った書き方みたいなのものってましたね。http://www.dofactory.com/Patterns/PatternSingleton.aspx#_self2今回は普通にstaticなメンバを使った実装です。htt…

C++でデザインパターンを実装していこうよ 第8回 TemplateMethodパターン

初めてデザインパターンを学んだとき、一番理解しやすいと感じたのがTemplateMethodパターンでした。今回の例は http://www.dofactory.com/Patterns/PatternTemplate.aspx#_self2 これです。なんかデータベースへのアクセスをしてますが、書き直したバージョ…

C++でデザインパターンを実装していこうよ 第7回 Observerパターン

http://www.dofactory.com/Patterns/PatternObserver.aspx#_self2 今回のお題は今までの中では一番良い感じかなと思います。株価(Stock::price_)が変わると投資家(Investor)に通知(Notify)が行きます。"株価が変わったら通知がいく"ってのは所謂共通性で、そ…

C++でデザインパターンを実装していこうよ 第6回 Decoratorパターン

まず今回のお題です。 http://www.dofactory.com/Patterns/PatternDecorator.aspx#_self2図書館で借りられるものというLibraryItemクラスから派生しているBookクラスとVideoクラスがあって、これにDecoratorパターンを使ってBorrowable(借りられる)という性…

C++でデザインパターンを実装していこうよ 第5回 AbstractFactoryパターン

"実装ではなく、インタフェースに対してプログラミングする" ってすると、あるインタフェースAの実装が3種類あって、別のインタフェースBの実装が4種類あるけど、一部の組合せのみにしか意味がないみたいなことが多くなります。その組合せを都度指定するん…

C++でデザインパターンを実装していこうよ 第4回 Strategyパターン

"オブジェクト指向のこころ"で3つ目はStrategyパターンでしたね。別にその順にしなきゃならないわけではないのですが、とりあえず今回はStrategyパターンにします。今回のお題は http://www.dofactory.com/Patterns/PatternStrategy.aspx#_self2 です。C++…

C++でデザインパターンを実装していこうよ 第3回 Bridgeパターン

"オブジェクト指向のこころ"をはじめて読んだとき、Bridgeパターンで一度挫折しかけました。「実装から抽象的側面を切り出して、それらを独立して変更できるようにする」"オブジェクト指向のこころ"では、[抽象的側面]がShapeクラス、[実装]がDrawingクラス…

C++でデザインパターンを実装していこうよ 第2回 Adapterパターン

C++

"オブジェクト指向のこころ"で出てくる順番にとりあえず従って、今回はAdapterパターンです。今回も http://www.dofactory.com/Patterns/PatternAdapter.aspx#_self2 をC++に移植していきましょう。https://github.com/TakahashiShuuhei/DesignPatternPracti…

C++でデザインパターンを実装していこうよ 第1回 Facadeパターン

C++

Wikipediaによれば、 "関連するクラス群を使用するための手続きを、窓口となる一つのクラスに集約することにより、プログラムの冗長性を無くすことを目的とする。" http://ja.wikipedia.org/wiki/Facade_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3ってことらしい…

C++でデザインパターンを実装していこうよ 第0回 はじめに

デザインパターンの復習していきます。毎回1つのパターンを取り上げて、そのパターンを使えるお題を無理やりひねり出してそれをC++で実装して行こうと思います。 とおもったけど自分で無理やりひねり出すのはやめました。 思ってた以上に思いつかなかったの…