ブログ「サイバー少年」

ブログ「サイバー少年」へようこそ!
小学六年生ごろからプログラミングを趣味にしている高校生のブログです。
勉強したことについての記事などを書いています。フリーソフトも制作、公開しています。
(当ブログについて詳しくは「ブログ概要紹介」を参照)

サイバー少年が作ったフリーソフトは「サイバー少年の作品展示場」へ

GoFデザインパターン解説 THE LAST

今回はGoFデザインパターン解説をします。

この前のGoFデザインパターンの記事「[GoF] クラスで表すパターン解説」で、
もう解説できるようなパターンが、Builderパターン、Bridgeパターン、ChainOfResponsibilityパターン、Proxyパターンぐらいしか残っていないと書きましたが、

今日はそのネタを使いきってしまおうと思います。
4つも書くのはしんどいんですけどね…。

あと、もうあんまり覚えてない…。

というわけで、今回の記事は、当ブログでのGoFデザインパターン解説記事としては最後になります。

続きを読む

tag: プログラミング オブジェクト指向 GoF デザインパターン クラス 継承 プロキシ 条件分岐 リスト 処理

[GoF] クラスで表すパターン解説

ネタがないときはGoFデザインパターンの記事を書くのが鉄板になりそうですが、

GoFデザインパターンは23種あるようにみえて、実は記事にするほどでもないクソみたいなパターンも多いので、わりと弾薬は減っています。


そういえば、そもそも私がGoFデザインパターンの勉強に使った本は、「Java言語で学ぶデザインパターン入門」という本で、
Java使えませんが、ほとんどC#と同じだし、書いてある内容は言語に依存しないものなので、読んでいたんですが

この本の著者の結城浩という方、数学にも精通していて「数学ガール」という本で、すごく有名なんですね。
読んだことはないですが、私でもたまに耳にしていた本です。

数学の色々なテーマについてのシリーズ本になっているみたいで、なんかよく分かりませんが高校生の女の子とかがなぜか数学詳しくて、取り巻きと一緒に数学について考察するストーリーものなんでしょうか。

私が現在勉強している論理学の「ゲーテルの不完全性定理」について扱っている巻もあるようなので、ぜひ機会があれば読んでみたいですね。


さて今回は、あまりクラスで表現しようと思わないものをクラスで表現してみました、というコンセプトのデザインパターンがいくつかあるので、それを紹介します。


具体的には、Stateパターン、Mementoパターン、Commandパターンです。

クラスで表すというカテゴライズでやるなら、StrategyパターンとInterpreterパターンも取り上げるべきだと思うのですが、
Strategyパターンは単純すぎるのと、Interpreterパターンは需要がニッチすぎるので、やめておきます。

まあ正直に言うと面倒臭いだけなんだがな!

続きを読む

tag: プログラミング オブジェクト指向 GoF デザインパターン クラス ステート 処理 カプセル化

[GoF] データ構造に関するパターン解説

またGoFデザインパターンの記事を書こうと思います。

前回のGoFの記事「Factory MethodとAbstract Factoryの違いを考える」では、
Template Method、Factory Method、Abstract Factoryについて書きましたが、

今回はデータ構造に関するデザインパターンについて解説していきます。

Iteratorパターン、Compositeパターン、Visitorパターンです。


本当は“データ構造に関するデザインパターン”なんてカテゴリはなくて、これらは別のカテゴリになっているんですが、
私はこの三つをデータ構造に関するパターンと言っていいんじゃないかなと思いますね。

特にIteratorとVisitorは一般に、比較されるようです。

続きを読む

tag: プログラミング オブジェクト指向 GoF デザインパターン データ構造 イテレータ ツリー ディスパッチ

Factory MethodとAbstract Factoryの違いを考える

前回記事「円柱を傾けて転がすことについて考察」は、祝日、文化の日に書きました。

そろそろまた記事を書こうと思ったら、なんと今日は勤労感謝の日ではありませんか。

祝日限定更新とかにしますか…。


さて、今回はデザインパターンの話です。
この前はパターンマッチングの記事を書いて、パターンの話ばかりしています。


この前、GoFデザインパターン23種類をひととおり学んだのですが、なんということでしょう、ほぼ忘れてしまいました。

まあ23個もあったら無理はないかもしれませんが。

そして、覚えられない原因として、キッチリ覚えようとしてしまうというのがあるのかなと思いました。


記事の最後のほうでまた書きますが、デザインパターンって別にこれに準拠してガチガチに組み立てていくものじゃなくて、参考程度のものなんですよね。

「GoFの頭いい人はこんな作り方してたけどどう?」みたいな程度です。

そのため覚えるもクソもなくて、考え方のニュアンスというかエッセンスを吸収するだけぐらいの心持ちのほうが、応用も効く頭になっていいと思いました。

というわけで、最近は「結局なにをどうしたくてこうなったのか?」ということを着眼点において、またGoFデザインパターンを学び直しています。


今回は、以前からFactory MethodパターンとAbstract Factoryパターンは何が違うのかよくわからなかったのですが、学び直して分かったような気がしないでもないので、書いていきます。
続きを読む

tag: プログラミング オブジェクト指向 クラス オブジェクト デザインパターン GoF 抽象 設計 ファクトリ

当ブログをご利用(閲覧等)になる場合は必ず「当ブログの利用規定」をお守りください。