タグ

inheritanceとrubyに関するkiyo_hikoのブックマーク (2)

  • Railsでコントローラを継承して階層化すると効率よく開発できる - さかなチキンぱん。

    コントローラの階層化 Railsで開発を行う場合に、コントローラを継承して階層化することで ずいぶん楽に開発を進められるようになるのですが、意外と知られていないようなので紹介します。 (タイトルにRailsと銘打っているけれど、恐らくRailsからのPHP派生フレームワークcakephpやsymfonyでも同じハズ) コントローラの継承のさせ方を簡単に図にしてみた。 なぜ継承させると開発が楽になるのか? Railsの入門向け書籍などには、一番の大元になるApplicationControllerに対して 共通のロジックを書くことでDRYに書けるよ!と、あったりするんですが、 実際にはRails等フレームワークを使うような開発の場合(規模がそれなりに大きい事が多いため)、 「データをメンテする管理画面」と「ユーザーが参照するための公開画面」の2つに大きく分けられます。 しかし

    kiyo_hiko
    kiyo_hiko 2015/10/22
    Padrinoで似たような事やりたくなり、検索から。参考にしたい。
  • JavaやC#の常識が通用しないRubyのprivateメソッド - give IT a try

    衝撃を受けたできごと 最近Rubyを勉強しています。 JavaやC#でオブジェクト指向プログラミングの基はマスターしてるから、Rubyもそのあたりは楽勝〜!・・・と思っていたら、JavaやC#の常識が全く通用しない振る舞いに遭遇してかなり衝撃を受けました。それは、 privateメソッドはサブクラスからも呼び出せる ・・・ということです!!がーん。 たとえば、JavaやC#だと自分のクラス内でprivateメソッドが使われていない場合、不要なメソッドとして削除できます。(リフレクションを使って呼び出される可能性はここでは無視ね) しかし、Rubyでは誰かがサブクラスを作って呼び出している可能性があるので、privateメソッドを削除する場合は注意が必要です。メソッド名を変更する場合も同様ですね。 また、知らずに親クラスと同名のprivateメソッドを定義すると、予期せず親クラスの実装をオ

  • 1