【Ruby/学習備忘録】オブジェクト指向とは何か
オブジェクト指向とは何か
オブジェクトとは・・・データと処理の集合
例:人物をオブジェクトとした場合
データ:姓名(name)、性別(gender)、生年月日(birthday)、出身地(birthplace)、職業(occupation)
処理:自己紹介(introduction_myself)
class Human def initialize(name, gender, birthday, birthplace, occupation) @name = name @gender = gender @birthday = birthday @birthplace = birthplace @occupation = occupation end def introduction_myself puts "私の名前は" + @name + "です。 " + "性別は" + @gender + "です。 "+ "生年月日は" + @birthday + "です。 "+ "出身地は" + @birthplace + "です。 "+ "職業は" + @occupation + "です。 " end end shimizu = Human.new("shimizu", "男", "1991/3/20", "岐阜県", "研究職") shimizu.introduction_myself
用語説明
Human
クラス
具体的なデータに関連付かないデータの抽象的な挙動を定義するもの
shimizu
Humanクラスの インスタンス
クラスから生成される具体的なデータと処理をまとめたもの
shimizu.introduction_myself
インスタンスメソッド。
インスタンスがもつデータを用いてデータを処理したもの
オブジェクト指向の目的
オブジェクト指向はユーザーのためではなく、開発者のコミュニケーションを円滑にするためのもの
×ユーザー
○開発者
オブジェクト指向は手続き型に比べコード行数が多くなる傾向にあるが、プログラムに機能追加が増えてくると、
各メソッドが分離されているオブジェクト型の方が可読性がよくなる。
上記のように「自己紹介する」というメソッドをHumanクラスの中に入れてしまうことで、仕様変更等に伴う手間を削減することができる。
オブジェクト指向を用いて得られるメリットの中の1つが変更に強いこと。
現在存在するアプリやサービスはユーザーにとっては、独創的なものに見えるが、今までのソフトウェア開発の歴史なかで真に新しい概念を用いて開発されるものはほとんどない。
ほぼ今までに作られた仕組みを部分的に再利用して開発されている。
オブジェクト指向でサービス開発する場合、将来的に追加されるであろう機能を予測してコーディングしておくことが求められる。
システムエンジニアの設計力や予測力が重要になってくる。
良いエンジニアとそうでないエンジニアを分けることができるのが想像力である。