ここにあった記事は消しました。 詳しくは以下: ympbyc.hatenablog.com
この記事では、私がオブジェクト指向のどこを愛しどこを素晴らしいと感じていて、そのうえでなぜオブジェクト指向を使うことを避けているのかを書き留めておきます。関数型言語使いの方で、「オブジェクト指向の何がいいのかわからない」「オブジェクト指向難しすぎ・複雑すぎ」とおっしゃる方にぜひ読んでいただきたいと思っています。また、「オブジェクト指向言語完璧に理解したわ」と思っている方にも読んでいただきたく思います。 なお、ここでのオブジェクト指向の定義は、「各言語でオブジェクト指向と呼ばれているものすべて」とします。JavaやScalaやJavaScriptやSmalltalkやRubyやCommon LispやOCamlがオブジェクト指向と呼んでいるものすべての総称です。もっとまともな定義が知りたい方は以下の記事がおすすめです。 オブジェクト指向の概念の発明者は誰ですか?(改訂版) - Smallta
The Open-Closed Principle(開放-閉鎖原則) これは雑誌 C++ Report のコラム Engineering Notebook の最初のものです。このコラムは C++と OOD を使うことにフォーカスしていて、ソフトウェアエンジニアリングの記事です。ここではソフトウェ アエンジニアにとって、実用的ですぐに役にたつものを取り上げるように努力するつもりです。この 記事の中では、Booch の記法でオブジェクト指向のドキュメントを記述しようと思います。欄外に簡 単に Booch の記法を紹介することにします。 オブジェクト指向の設計では、たくさんの経験則があります。例えば、「全てのメンバ変数は private にせよ」、あるいは、「グローバル変数は使うな」、また、「実行時型情報(RTTI)は危険だ」といったよ うなものです。では、これらの経験則は何に基づいているので
ポリモーフィズム(サブクラスによる切り替え、抽象化) ここに分類されるのは、オブジェクト指向の第3原則、ポリモーフィズムを使用したパターンです。ポリモーフィズムを使用すると、動的に使用するクラスを切り替えることができます。<参照> 他に分類されているものでも、ポリモーフィズムが重要な位置を占めているものもありますが、ここではそれしか使われていないものを扱います。 ただデザインパターン全体を通して強調されているのは、インターフェースでプログラミングするということです。実装への依存をなくし、そうすることによって設計の骨組みを明らかにするのです。 Template 次のようなメソッドがあった場合に、処理Bのところを条件によって変えたい場合があるとします。 class Hogehoge { void doit() { ... 処理A ... ... 処理B ... ... 処理C ... } }
今回は継承,特に誤解されがちな多重継承について改めて解説します。「オブジェクトは現実世界のモノの反映であり,継承はそのモノの分類を反映したものである」,「多重継承は良くないものだ」という意見が正しいかどうか,判断する基準を紹介します。 今回は,オブジェクト指向にまつわる誤解を取り上げましょう。 これまで,オブジェクト指向プログラミングの古くからのファンとして解説を書き,Rubyというオブジェクト指向プログラミング言語を提供してきました。オブジェクト指向プログラミングをより多くの人が身近に感じられるように貢献してきたつもりです。Smalltalkよりも手軽に入手でき,JavaやC++よりも簡単にオブジェクト指向プログラミングを実践できるRubyによってオブジェクト指向という概念がより理解しやすくなったのではないかと自負しています。 しかし,その過程で,私自身の未熟さもあり,オブジェクト指向プ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く