織田信長 ぼちぼち、元気にやっています。少し薬にも慣れた...んかなぁ。相変わらず食べられないけど。朝、指がこわばって文字なんて入力できなかったけど、それはほぼなくなった。関節もどこも痛くない。薬効いてきたんやろな。 で、ブログを書こうと言う気がまた起きてきた。 …
織田信長 ぼちぼち、元気にやっています。少し薬にも慣れた...んかなぁ。相変わらず食べられないけど。朝、指がこわばって文字なんて入力できなかったけど、それはほぼなくなった。関節もどこも痛くない。薬効いてきたんやろな。 で、ブログを書こうと言う気がまた起きてきた。 …
2006年11月16日16:55 カテゴリLightweight Languages オブジェクトは難しくない。難しいのはクラス 大人だからオブジェクトは難しくなる。子供にとっては実はオブジェクトは自然で自明で簡単だ。 オブジェクト指向を正しく理解する:ITpro オブジェクト指向はしばしば,とっつきづらく難しい技術と言われます。その理由の一つには,対象とする分野が広く,それぞれに深みがあることが挙げられます。しかし,それ以上にこの技術を難しくしている落とし穴とも言うべき原因が二つあると筆者は考えています。それは比喩を乱用する説明の仕方の問題と,「もの中心」を意味するコンセプト自体の問題です。事実、オブジェクト指向というのは最初は子供向けだったのだ。 このことを、現在「オブジェクトとはなんぞや」という大人たちは忘れてしまっている。 それで、オブジェクトとは何か、といえば、「自分が何が出来る
「全オブジェクト指向システム入場!」というネタを思い付いた。「ラムダ計算は生きていた!! 更なる研鑚を積みCommonLispが甦った!!! 読み方不定!! CLOSだァ――――!!!」「メッセージパッシングはすでに我々が完成している!! デザインパターンの宝庫Smalltalkだァ――――!!!」「コンパイル時に既にチューリング完全!! 変態言語代表 C++だァッ!!!」「多言語混合なら我々の単純さがものを言う!! Cで使えるオブジェクトライブラリ gobject!!!」 まだまだ続けられそうだけど、続ける事に意味を感じないのでこれぐらいにしておく。 オブジェクト指向の本質が多態だと仮定すると、どうやって多態を実現するのか、という観点から各オブジェクトシステムを分類する事ができる。多態とは要するに、オブジェクトに応じて適切な処理を呼び出す、という事になる。これにはいくつかのやり方がある。
今日の衝撃経由、ruby-list:5323にて。 「(Rubyに++がないのは)++の動作が本質的に「変数を操作する」ものであるため」とのこと。 なるほど。 変数はオブジェクトではない ++は += 1 すなわち「代入操作」である 代入操作はオブジェクトに対する操作ではなく、変数に対する操作である と理解しました。ということは「代入する」というメソッドはあり得ないのですね。 class Rubyco def =(x) end end Rubyco.new = 12345実行すると... a.rb:2: parse error, unexpected '=' def =(x) ^ a.rb:6: parse error, unexpected $, expecting kENDふむふむ。 ただし、配列の要素への代入はメソッドになりますね。これはいわばインスタンス変数への代入のようなものです
先日、日経BPの出版局の方と話をする機会があったのだが、私がマイクロソフトでウィンドウズ95の開発に関わったことに触れた際、「ユーザーインターフェイスの設計において、日本人であることで何か役に立ったことはありますか?」と聞かれた。日本人であることがプラスになったとは思わないが、ふと思い出したことがある。当時、「日本語はオブジェクト指向な言語だな」と思ったことである。 その当時(90年代初頭)、アップルの方が使い勝手に関しては一歩も二歩もマイクロソフトより進んでおり、そのためには、もともとゼロックスが提案しアップルが商品化した、「オブジェクト指向ユーザーインターフェイス」の考え方を、より推し進めるしかないという戦略で、ウィンドウズ95のユーザーインターフェイス(当時は Object-Oriented Shell と呼ばれていた)の開発をしていた。 「オブジェクト指向ユーザーインターフェイス」
MS-DOSからWindows3.1に移行したとき、私はプログラミングを投げ出した。ウィンドゥを一つ出すのに100行近くのソースを書かないといけないし、HANDLEやら何やらもうさっぱり意味がわからなかった。「プログラミングとはこれほど難しいものなのか」と思った。 Windows95になって、OpenGLをいじるようになってからもその思いは拭えず、依然、HDCが何かもよくわからないままプログラムを書いていたのをよく覚えている。Windowsのそういった呪縛から逃れるためにDirectXを勉強しはじめ、BM98を作った。当時はオブジェクト指向設計にすらなっておらず、OOPが分からないのでC++を単なるbetter Cとして使っていた。まともなオブジェクト指向設計が出来るようになったのは、そのずっと後になってからである。 そんな暗中模索の状態だったが、「動くプログラム」は書けた。そもそも私は機
ぼくがオブジェクト指向言語を勉強しはじめた90年ころは、「継承」という概念がとても流行っていて、継承によって「差分プログラミング」ができることがオブジェクト指向設計の再利用性の典型例のように言われていた。もちろん、こういう誤解は95年くらいには、みんなウソだと分かってきていた。 しかし、それでもときどき、 すべてのクラスの頂点のような「神様クラス」を作ってしまうことがある。 例えば、90年代の多くのC++オブジェクト指向データベースは、Persistenceのようなクラスを継承することで永続オブジェクトとなるクラスをマーキングしたり、あるベンダーのコレションクラスは、Objectというクラスを継承したクラスのオブジェクトのみがコレクションの要素となることができたり、という具合に。また、EJBも最近まではEntityBeanを継承することでEntityBeanの資格が得られるし、Servel
以下の文章は、Kent Beck、Ward Cunninghamによる「Using Pattern Languages for Object-Oriented Programs」の日本語訳である。 Ward Cunningham氏の許可を得て、ここに掲載する。 Kent Beck, Apple Computer, Inc. Ward Cunningham, Tektronix, Inc. Technical Report No. CR-87-43 September 17, 1987 Submitted to the OOPSLA-87 workshop on the Specification and Design for Object-Oriented Programming. 概要 オブジェクト指向プログラミングへのパターン言語の適合について概説する。ウィンドウ・ベースの
第1章 はじめてのデザインパターン はじめに デザインパターンとは 特集の構成 すぐわかるオブジェクト指向 すぐわかるUML おわりに 第2章 逆引きカタログ ロジック編 Singleton (シングルトン) Factory/Factory Method (ファクトリ/ファクトリメソッド) Strategy (ストラテジ) Composite (コンポジット) Visiter (ビジタ) 第3章 逆引きカタログ J2EE編 Template Method (テンプレートメソッド) Facade (ファサード) ViewHelper (ビューヘルパ) DAO (Data Access Object) 第4章 逆引きカタログ その他 ユーティリティクラス 実行時例外を標準的に使う Nullオブジェクト 第5章 デザインパターン適用の勘所 はじめに アプリケーションの仕様 リファクタリング前のサ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く