アカウント名:
パスワード:
> おぶっじぇくと志向の利点は> 綺麗にコーティングすると「使い回し」が可能な点です。
良くある間違いですね。
あなたが言っていることは、「構造化プログラミング」の手法を使えば「使い回し」可能なコードが実装できるよ、という話で、オブジェクト指向とは関係ない話です。
構造化プログラミングってのは、サブルーチンとか手続きといった処理の組合わせ、使い回しでシステムを設計したり実装する方法。要は printf みたいな便利な関数、ライブラリはどんどん使い回しましょう、という話。
オブジェクト指向は、この処理の組合わせとか使い回しを、オブジェクト中心で考えるように方針転換しましょう、って話ですね。
構造化言語の「使い回し」ったらそうだろうけど、オブジェクト指向言語の「使い回し」ったら継承でしょ。
継承だけでなく集約も大事ですよ。
データ構造とメソッドがパックになったオブジェクトが再利用の単位になったことで複雑なデータ構造や複雑な状態管理を必要とする処理の再利用が容易になりました。(細かいことを言えばこれはオブジェクト指向というよりオブジェクト・ベースの話ではありますが。)
そのため構造化時代の中心であったサブルーチン・ライブラリのようなものだけでなく、コンテナ・ライブラリや通信プロトコルのような応用のライブラリ化が容易になりました。
オブジェクトコンポジションの方が重要だよ。
『オブジェクト指向言語では、使いまわし(再利用)のために「継承」する』といういい加減な説明による誤解が生んだ、えも言われぬ設計のクラスをいくつも見てきました。
ユーザー extends 会社
みたいな。曰く、「どちらもコードと名称があるから(get/setCode、get/setNameの再利用)」とか。もちろん、ユーザークラスでは年齢とか性別とかが「拡張」されてます。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
アレゲは一日にしてならず -- アレゲ見習い
オブジェクト指向でそれを活用しないのは・・・ (スコア:0)
なんてことはないけれど、おぶっじぇくと志向の利点は
綺麗にコーティングすると「使い回し」が可能な点です。
そう言う意味では、オブジェクト指向の開発でそれを使わないのは
チームで開発したことの無い一匹狼のようなプログラマーです。
Re: (スコア:2)
> おぶっじぇくと志向の利点は
> 綺麗にコーティングすると「使い回し」が可能な点です。
良くある間違いですね。
あなたが言っていることは、「構造化プログラミング」の手法を使えば「使い回し」可能なコードが実装できるよ、という話で、オブジェクト指向とは関係ない話です。
構造化プログラミングってのは、サブルーチンとか手続きといった処理の組合わせ、使い回しでシステムを設計したり実装する方法。要は printf みたいな便利な関数、ライブラリはどんどん使い回しましょう、という話。
オブジェクト指向は、この処理の組合わせとか使い回しを、オブジェクト中心で考えるように方針転換しましょう、って話ですね。
Re:オブジェクト指向でそれを活用しないのは・・・ (スコア:0)
構造化言語の「使い回し」ったらそうだろうけど、オブジェクト指向言語の「使い回し」ったら継承でしょ。
Re:オブジェクト指向でそれを活用しないのは・・・ (スコア:1)
継承だけでなく集約も大事ですよ。
データ構造とメソッドがパックになったオブジェクトが再利用の単位になったことで
複雑なデータ構造や複雑な状態管理を必要とする処理の再利用が容易になりました。
(細かいことを言えばこれはオブジェクト指向というよりオブジェクト・ベースの話ではありますが。)
そのため構造化時代の中心であったサブルーチン・ライブラリのようなものだけでなく、
コンテナ・ライブラリや通信プロトコルのような応用のライブラリ化が
容易になりました。
Re: (スコア:0)
オブジェクトコンポジションの方が重要だよ。
Re: (スコア:0)
『オブジェクト指向言語では、使いまわし(再利用)のために「継承」する』という
いい加減な説明による誤解が生んだ、えも言われぬ設計のクラスをいくつも見てきました。
みたいな。
曰く、「どちらもコードと名称があるから(get/setCode、get/setNameの再利用)」とか。
もちろん、ユーザークラスでは年齢とか性別とかが「拡張」されてます。
Re: (スコア:0)
おそらくは親クラスのメソッドを子クラスから呼び出すことしか考えていないんだろうけど、そんなものはなくても、継承は可能だ。
継承は、メソッドのインタフェースを共有するための手段である。ポリモルフィズムって聞いたことないか :-p
Re: (スコア:0)