アカウント名:
パスワード:
私感だけど、オブジェクト指向というのは、再利用するライブラリを作成する場合は威力を発揮するのはよく分かる。しかし、再利用しない場合は不要だし、多人数で開発する場合は他人とのインタフェース部分だけオブジェクト指向的にすれば十分だと思う。他人に見せない内部まで生真面目にオブジェクト指向で作ったら、むしろコードサイズが大きくなり。処理が分散することで、かえって可読性が落ちる。
オブジェクト指向というのは、再利用するライブラリを作成する場合は威力を発揮するのはよく分かる。
発揮しません。再利用性で重要なのは、汎用性のある仕様です。オブジェクト指向で作ろうが、使えないものは使いたくありません。
他人に見せない内部まで生真面目にオブジェクト指向で作ったら、むしろコードサイズが大きくなり。処理が分散することで、かえって可読性が落ちる。
オブジェクト指向というか、カプセル化はきっちりした方がいいですよ。一人で書く場合も重要。書いているうちに共通部分が次第に見出せてくるので、そういうものをクラスに分離。そうして
>発揮しません。レイヤが違います。たとえ、仕様がちゃんとしていても、クラス変数の操作がアクセサで防御されていなければ、ダメでしょう。オブジェクト指向ってライブラリの使用者に不正な操作をさせないための工夫が随所に盛り込まれています。
>書いているうちに共通部分が次第に見出せてくるので、そういうものをクラスに分離。単に、共通部分を private メソッドに切り出すだけではダメですか?また、細かい話ですが、このようなサブルーチン化はカプセル化とは違うものです。
>特にいらないのがアクセサ。オブジェクト指向的には、格別な理由が無い限り、アクセサを使用すべきです。たとえ、もらった値をクラス変数に設定するだけのアクセサであってもです。さらに...
>多態性や動的束縛は爆弾を仕込むことになることもあるので、よく考えて使ったほうが吉。だなんて、私と同じく、あなたもオブジェクト指向の濫用には反対だったりしませんか?
クラス変数の操作がアクセサで防御されていなければ、ダメでしょう。
何故に「クラス変数」の場合に限るのでしょうか。何か特定の言語のお話?
オブジェクト指向ってライブラリの使用者に不正な操作をさせないための工夫が随所に盛り込まれています。
最初の発言では「再利用」と言っておきながら、いつのまにか「利用」の話にすりかわってますね。
とりあえず、私(#1886035)はオブジェクト指向プログラミングの信奉者ではありません。また、カプセル化については推進派ですが、アクセサに関しては不要派です。
再利用性ついて、オブジェクト指向である必要性はありません。Cにもライブラリはありますよね。カプセル化については、Cのモジュールでも実現できます。それだと、再利用が難しいですか?再利用性に、オブジェクト指向は不可欠ではありませんし、プログラミング言語という道具だけの問題ではないのです。
単に、共通部分を private メソッドに切り出すだけではダメですか?また、細かい話ですが、このようなサブルーチン化はカ
>カプセル化については、Cのモジュールでも実現できます。
それは、C言語上でオブジェクト指向的な設計を実践しただけのことです。いわゆるオブジェクト指向言語でなくてもオブジェクト指向な設計は実践可能です。それで私は、再利用しない、他人に見せない部分では、構造化設計のレベルで十分(オブジェクト指向設計はやり過ぎ)ではないかと考えております。
>処理だけなら、privateメソッドにしていいですよ。でも、「クラス」と書いたのはデータと処理のどちらかではなく、組合せを念頭においているからです。
結局は程度論になるのでしょうけど、ひとりで把握できている範囲ならばデータと処理が分離しても良いと考えてます。データと処理の関連性を意識したいならば、変数名関数名で関連性を持たせれば十分ではないかと思います。
>でも、アクセサは処理からデータを切り離す手段なので、データに誤った処理を書く確率が高まります。
アクセサは誤った処理ができないようにするためのものだと思いますが。アクセサ内で入力をチェックして、不正な値ならば拒絶すれば良いですね。
>また、カプセル化がきっちり出来たクラスのオブジェクトは、アクセサで取り出そうが、メンバ変数で取り出そうが、本質的には同じことです。
どうも誤解されているようですが、アクセサとはカプセル化を行うための手段なので、このコメントは矛盾しているように思います。外部に対してリードオンリーな属性(変数)を実現するにはアクセサを使わざるを得ないと思いますが。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
犯人は巨人ファンでA型で眼鏡をかけている -- あるハッカー
再利用しなけりゃオブジェクト指向は不要 (スコア:1)
私感だけど、
オブジェクト指向というのは、再利用するライブラリを作成する場合は威力を発揮するのはよく分かる。
しかし、再利用しない場合は不要だし、多人数で開発する場合は他人とのインタフェース部分だけオブジェクト指向的にすれば十分だと思う。
他人に見せない内部まで生真面目にオブジェクト指向で作ったら、むしろコードサイズが大きくなり。処理が分散することで、かえって可読性が落ちる。
Re: (スコア:0)
発揮しません。再利用性で重要なのは、汎用性のある仕様です。オブジェクト指向で作ろうが、使えないものは使いたくありません。
オブジェクト指向というか、カプセル化はきっちりした方がいいですよ。一人で書く場合も重要。書いているうちに共通部分が次第に見出せてくるので、そういうものをクラスに分離。そうして
Re:再利用しなけりゃオブジェクト指向は不要 (スコア:1)
>発揮しません。
レイヤが違います。たとえ、仕様がちゃんとしていても、クラス変数の操作がアクセサで防御されていなければ、ダメでしょう。オブジェクト指向ってライブラリの使用者に不正な操作をさせないための工夫が随所に盛り込まれています。
>書いているうちに共通部分が次第に見出せてくるので、そういうものをクラスに分離。
単に、共通部分を private メソッドに切り出すだけではダメですか?
また、細かい話ですが、このようなサブルーチン化はカプセル化とは違うものです。
>特にいらないのがアクセサ。
オブジェクト指向的には、格別な理由が無い限り、アクセサを使用すべきです。たとえ、もらった値をクラス変数に設定するだけのアクセサであってもです。さらに...
>多態性や動的束縛は爆弾を仕込むことになることもあるので、よく考えて使ったほうが吉。
だなんて、私と同じく、あなたもオブジェクト指向の濫用には反対だったりしませんか?
Re: (スコア:0)
クラス変数の操作がアクセサで防御されていなければ、ダメでしょう。
何故に「クラス変数」の場合に限るのでしょうか。何か特定の言語のお話?
オブジェクト指向ってライブラリの使用者に不正な操作をさせないための工夫が随所に盛り込まれています。
最初の発言では「再利用」と言っておきながら、いつのまにか「利用」の話にすりかわってますね。
Re: (スコア:0)
とりあえず、私(#1886035)はオブジェクト指向プログラミングの信奉者ではありません。また、カプセル化については推進派ですが、アクセサに関しては不要派です。
再利用性ついて、オブジェクト指向である必要性はありません。Cにもライブラリはありますよね。カプセル化については、Cのモジュールでも実現できます。それだと、再利用が難しいですか?再利用性に、オブジェクト指向は不可欠ではありませんし、プログラミング言語という道具だけの問題ではないのです。
Re:再利用しなけりゃオブジェクト指向は不要 (スコア:1)
>カプセル化については、Cのモジュールでも実現できます。
それは、C言語上でオブジェクト指向的な設計を実践しただけのことです。いわゆるオブジェクト指向言語でなくてもオブジェクト指向な設計は実践可能です。それで私は、再利用しない、他人に見せない部分では、構造化設計のレベルで十分(オブジェクト指向設計はやり過ぎ)ではないかと考えております。
>処理だけなら、privateメソッドにしていいですよ。でも、「クラス」と書いたのはデータと処理のどちらかではなく、組合せを念頭においているからです。
結局は程度論になるのでしょうけど、ひとりで把握できている範囲ならばデータと処理が分離しても良いと考えてます。データと処理の関連性を意識したいならば、変数名関数名で関連性を持たせれば十分ではないかと思います。
>でも、アクセサは処理からデータを切り離す手段なので、データに誤った処理を書く確率が高まります。
アクセサは誤った処理ができないようにするためのものだと思いますが。アクセサ内で入力をチェックして、不正な値ならば拒絶すれば良いですね。
>また、カプセル化がきっちり出来たクラスのオブジェクトは、アクセサで取り出そうが、メンバ変数で取り出そうが、本質的には同じことです。
どうも誤解されているようですが、アクセサとはカプセル化を行うための手段なので、このコメントは矛盾しているように思います。外部に対してリードオンリーな属性(変数)を実現するにはアクセサを使わざるを得ないと思いますが。