タグ

オブジェクト指向に関するsagarayaのブックマーク (8)

  • (あなたの周りでも見かけるかもしれない)インスタンス変数の間違った使い方 - Qiita

    (2021-8-28追記) この記事の改訂版を書いてみました。改訂版の方が易しい内容になっているので、プログラミング初心者の方はこちらを参考にしてみてください。 はじめに:「引数があるよりは、ない方が良い」? 先日、同僚の西見さん(@mah_lab)がこんな技術ブログを書いていました。 インスタンスメソッドとクラスメソッドはどのようにして使い分けるべきか?(Rubyの場合) 同じ内容を僕だったらどういうふうに書くかな~?と思って、ちょっと書き始めてみたんですが、わかりやすく実践的な説明をするのは意外と難しく、内容も西見さんのブログとほぼ同じになりそうだったので、途中で断念しました。 というわけで、インスタンスメソッドとクラスメソッドの使い分けが未だにあやふやだという方は、ぜひ西見さんのブログを読んでみてください! ・・・なんですが、1点だけ気になる点がありました。 それはインスタンスメソッ

    (あなたの周りでも見かけるかもしれない)インスタンス変数の間違った使い方 - Qiita
  • 例えば, Singleton を避ける | Born Too Late

    この記事は TDD Advent Calendar jp: 2011 の 14 日目です. 前日: TDD戦略 -TDDを導入し進化させる方法- #TDDAdventJP (@kyon_mm さん) 翌日: TDDに対して思っていること (@gab_km さん) この記事の概要 TDD で開発することで設計上の問題点に気づきやすくなる Singleton はグローバル変数である Singleton の使用はできる限り避けるべきである テスタビリティを意識しよう TDD では, 原則としてユニットテストを書いてから実際のコードを実装します. なので, 自然と「テストのしやすさ (テスタビリティ)」を意識して実装することになります. そして, TDD においては一般的に, テスタビリティを意識することで, 設計が改善されるとされています. オブジェクト指向には難しい概念がたくさん登場します.

  • Perlでオブジェクトを書くときに必要なClass::Accessor とは | ブログが続かないわけ

    SQLAlchemy Database Engines 日記。 (TokuLog) - Class::Accessor は言語の機能としてつけるべきだったよね このエントリの中に次のようなくだりがある。「Perl で書かれたオブジェクトのほとんどって、この2つを継承しているものね。」 最近話題のPerlの学習コストの話とも多少関係があるのだが、PerlではCPANの使いこなしってのが重要なのだ。そこで、Class::Accessor とはどういうものか簡単に説明しよう。 基的には perldoc Class::Accessor perldoc -m Class::Accessor としてもらえばいいのだけれども、もう少し簡単に解説してみる。 (ホントは自分用の備忘録なのだが) オブジェクト指向そのものの話は割愛させてもらいましょう。オブジェクト指向ではメンバ変数に直接アクセスするのは「悪

    Perlでオブジェクトを書くときに必要なClass::Accessor とは | ブログが続かないわけ
  • 継承は is-a、委譲は has-a または uses-a - Writing Some Code

    「継承は is-a の関係」というのはオブジェクト指向の基ですが、最近は何でも安易に継承を使ってしまうことが多かった自分を戒めてくれたのがこちらのアジャイルプラクティス 達人プログラマに学ぶ現場開発者の習慣 作者: Venkat Subramaniam,Andy Hunt,木下史彦,角谷信太郎出版社/メーカー: オーム社発売日: 2007/12/22メディア: 単行(ソフトカバー)購入: 35人 クリック: 995回この商品を含むブログ (291件) を見る 書の「32 取り決めを守ってコードを置き換える」(p.129〜)に次のようにあり、継承か委譲か判断の指針になります。 新しいクラスが既存のクラスと置き換え可能で、かつ両者の関係がis-a (である)の場合は、継承を使う。 既存のクラスを新しいクラスで使いたいだけで、両者の関係がhas-a (持つ)またはuses-a (使う

    継承は is-a、委譲は has-a または uses-a - Writing Some Code
  • クラス設計に関するメモ

    経験的にこのようにした方がよいと思った点についての記録です。 仕事で大規模(2000クラス超)かつ製品寿命がながいパッケージソフトを作っていた関係で、 ちょっとした設計の間違いが、 あとあとで大変な苦労する羽目になったりすることを経験してきました。 このような規模が大きいアプリケーションを作ることはなかなかないかもしれませんが、 なにかの参考になれば、と思います。 継承する前に委譲を検討する Singleton パターンを使うときの注意 Template Method パターンを使うときの注意 クラス間の依存に関する注意 クラスの粒度 Singleton の問題を回避できるか? 継承する前に委譲を検討する 継承はスーパークラスの仕様をよく理解しておかないと、 バグを作りこみやすいので十分注意する必要があります。 メソッドのオーバーライドをするときも、 public void foo(){

  • Life is beautiful: 日本語とオブジェクト指向

    先日、日経BPの出版局の方と話をする機会があったのだが、私がマイクロソフトでウィンドウズ95の開発に関わったことに触れた際、「ユーザーインターフェイスの設計において、日人であることで何か役に立ったことはありますか?」と聞かれた。日人であることがプラスになったとは思わないが、ふと思い出したことがある。当時、「日語はオブジェクト指向な言語だな」と思ったことである。 その当時(90年代初頭)、アップルの方が使い勝手に関しては一歩も二歩もマイクロソフトより進んでおり、そのためには、もともとゼロックスが提案しアップルが商品化した、「オブジェクト指向ユーザーインターフェイス」の考え方を、より推し進めるしかないという戦略で、ウィンドウズ95のユーザーインターフェイス(当時は Object-Oriented Shell と呼ばれていた)の開発をしていた。 「オブジェクト指向ユーザーインターフェイス」

    Life is beautiful: 日本語とオブジェクト指向
    sagaraya
    sagaraya 2012/03/26
    なるほどー。Windowsのユーザインタフェースの話も絡んでておもしろい。
  • やっと理解できた!JSオブジェクト指向プログラミング再入門 | ゆっくりと…

    既に多くの方が JavaScript のオブジェクト指向的側面についての解説を記事にされていますが、読み手側から見ると、例えばプログラミング言語への習熟度やオブジェクト指向自体に対する理解度がマチマチなわけで、私自身、「おお、なるほど!」 っていう、頭の中のスイッチがパチンッ!と入るような境地には達していませんでした。 かつて私も オブジェクト指向なJavaScriptプログラミングのススメ なんていう翻訳記事を書いてはいるのですが、正直なところ prototype.constructor の存在は知りませんでしたし、Function.call や Function.apply をどう使えばよいのかなどをちゃんと理解できてはいませんでした。 そんな中、2011年12月に書かれた Doc Center | Mozilla Developer Network の記事 オブジェクト指向 Java

    sagaraya
    sagaraya 2012/03/02
    callとapplyがちょっとわかった気がする
  • ドラゴンボールで学ぶオブジェクト指向

    オブジェクト指向の基亀仙流やつ鶴仙流など、世の中にはいくつかの流派(=クラス)があり、それぞれの流派にかめはめ波やどどん波、舞空術などの技(メソッド)がいくつかあります。 実際に流派にある技を使う場合、技を覚えているZ戦士(インスタンス)が必要になります。 例)亀仙流を覚えた孫悟空を使ってかめはめ波を放って敵を倒す goku = new KamesenRyu("goku"); goku.shootKamehameha(teki); Z戦士によっては複数の流派の技が使えたり、自分の技を人に教えることが出来ます(継承)。 また悟空とクリリンのように同じ流派でも同じ技で違う性能を持っていたり、オリジナルの技を持っているなどの違いがあります。 クラスはセルを作るためのZ戦士達の遺伝子情報と言っても良いかもしれません。 例)セルを作りましょう。 class Cell extends Goku,Ve

    ドラゴンボールで学ぶオブジェクト指向
  • 1