タグ

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

  • アブストラクトファクトリ(Abstract Factory) | Ruby デザインパターン

    アブストラクトファクトリは、矛盾のないオブジェクトの生成を行うためのパターンです。 このアブストラクトファクトリをRubyコードで紹介します。 😀 ソースコードを使ったAbstract Factoryの説明Abstract Factoryをソースコードを使って説明します。 ここでは次のような池をサンプルとして取り上げます。 動物を表すクラス: アヒルを表すDuckクラスは、事(eat)メソッドを持っている カエルを表すFrogクラスは、事(eat)メソッドを持っている 植物を表すクラス: 藻を表すAlgaeクラスは、成長(grow)メソッドを持っている スイレンを表すWaterLilyクラスは、成長(grow)メソッドを持っている 池の生態系を生成するクラス: コンストラクタで動物と植物を定義する 動物、植物のオブジェクトを返すメソッドを持っている 池の環境(動物と植物の組み合わせ)

    アブストラクトファクトリ(Abstract Factory) | Ruby デザインパターン
  • Rubyによるデザインパターン5原則 - Qiita

    概要 改めて基を学ぶ。 Rubyによるデザインパターン第1章。 デザインパターンとは プログラミングにおいて繰り返し現れる問題に対する、適切解のパターン。 無駄無く設計されたオブジェクト指向プログラムの実現をサポート。 パターンとしてカタログ化されていることで 車輪の再発明を防ぐ デザインパターンの根底にある5つの考え 変わるものを変わらないものから分離する プログラムはインターフェイスに対して行う(実装に対して行わない) 継承より集約 委譲、委譲、委譲 必要になるまで作るな(YAGNI) 変わるものを変わらないものから分離する ソフトウェアの仕様には必ず変更が加わるもの。 変わるものと変わらないものを分離しておくことで、 「仕様の変更」に対して「システムの変更」を出来る限り局所的にする。 プログラムはインターフェイスに対して行う(実装に対して行わない) 可能な限り「一般的・抽象的なもの

    Rubyによるデザインパターン5原則 - Qiita
  • 関数型・オブジェクト指向なプログラミングパラダイムについて思うところ - 技術memo

    動機 イメージ論でない言語パラダイムに関する話を書きたかった。*1 まともな意見をインターネット空間に1つでも多く残しておきたかった。*2 要約 オブジェクト指向プログラミングはデータに対する操作をオブジェクト*3として抽象化する。 関数型プログラミングでは関数による抽象化を基とする。 言語設計の問題と概念の問題は、混同すべきではない。 オブジェクト指向プログラミング 題材 Consというデータ構造を考えてみます。 Consは任意のデータのペアから成り、その片方をCar、もう片方をCdrと呼びます。 それはJava風に書けば次のようになるでしょう。 public final class Cons{ private Object car; private Object cdr; public void setCar(Object x){ this.car = x; } public voi

    関数型・オブジェクト指向なプログラミングパラダイムについて思うところ - 技術memo
  • てめえらのRailsはオブジェクト指向じゃねえ!まずはCallbackクラス、Validatorクラスを活用しろ! - Qiita

    てめえらのRailsはオブジェクト指向じゃねえ!まずはCallbackクラス、Validatorクラスを活用しろ!RubyRails ちょっと煽り気味のタイトルにしてみましたが、Railsで開発する時は意識的にOOPに寄せないとオブジェクトの力が活かせなくなるよってことと、Railsが提供しているクラスの責務を分割することを支援してくれる機能について話をします。 ActiveRecordの性質 Rails開発においては、モデル層にロジックを書いてコントローラーは薄くしろ、というのはしつこく言われているので、概ね浸透してきていると思います。 それに加えて、最近私が結構しつこく主張しておきたいのが、モデル = ActiveRecordでは無いよ、ということです。 ActiveRecordは成り立ちから言うと、ロジックとDBへの永続化をまとめてカプセル化するアーキテクチャパターンから来ています。

    てめえらのRailsはオブジェクト指向じゃねえ!まずはCallbackクラス、Validatorクラスを活用しろ! - Qiita