とある人とプログラムについて、オブジェクト指向について話ていると
どうも話が合わないので、いろいろ考えていました
そこで、wikiを参考にするとオブジェクト指向といっても、これもまた枝分かれのように
いろいろ手法があることがわかりました
そこで、私がほとんどの場合につかっているのが
http://ja.wikipedia.org/wiki/%E3%82%AA% ... 7%E5%90%91 より
クラスベース方式 -- クラスを定義し、それを元にインスタンスを生成する方式である。継承ベースともいう。
プロトタイプベース方式 -- 既存のインスタンスを元に、新たなインスタンスを生成する方式である。インスタンスベースともいう。
Mixin方式 -- さまざまなオブジェクトの原型を組み合わせて一つのオブジェクトを構成する方式である。
のひとつであって、とある型もこのうちのひとつでした
双方ともに違うやり方でやっているので、一緒にするのが困難というか、いちから組みなおし状態です
いろいろ参考にもなりましたし、よりいろいろな考え方を取り入れたいと思っているので
この上の3つの方法で、構成されているオープンソースなものを知っている方はいないでしょうか?
参考にするくらいなので、あまり大規模でなく小規模のものがいいです
いろいろなオブジェクト指向
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: いろいろなオブジェクト指向
そもそも概念的にC++では実現ができないものがあるのですが、
>この上の3つの方法で、構成されているオープンソースなものを知っている方はいないでしょうか?
>参考にするくらいなので、あまり大規模でなく小規模のものがいいです
3つとも実装している言語という意味でしょうか?
[追記]
>双方ともに違うやり方でやっているので、一緒にするのが困難というか、いちから組みなおし状態です
dicさんの周囲であったことはこちらでは把握しようがないのですが、この文と下の文が繋がっていません。
なにかアドバイスが必要ということなのでしょうか?解説をお願いします。
>この上の3つの方法で、構成されているオープンソースなものを知っている方はいないでしょうか?
>参考にするくらいなので、あまり大規模でなく小規模のものがいいです
3つとも実装している言語という意味でしょうか?
[追記]
>双方ともに違うやり方でやっているので、一緒にするのが困難というか、いちから組みなおし状態です
dicさんの周囲であったことはこちらでは把握しようがないのですが、この文と下の文が繋がっていません。
なにかアドバイスが必要ということなのでしょうか?解説をお願いします。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: いろいろなオブジェクト指向
>>softyaさん
説明不足ですいません
聞きたいことは
オブジェクト指向にも色々やりかたがあり
1.クラスベース方式 -- クラスを定義し、それを元にインスタンスを生成する方式である。継承ベースともいう。
2.プロトタイプベース方式 -- 既存のインスタンスを元に、新たなインスタンスを生成する方式である。インスタンスベースともいう。
3.Mixin方式 -- さまざまなオブジェクトの原型を組み合わせて一つのオブジェクトを構成する方式である。
の3つの方法があるとwikiにはあります
この方法を使っているソースコードを公開されているサイト、ソフトなどを紹介してもらいたい
ということです
もちろん、上の3つの方法を組み合わせたりして使っているのもあると思いますが
参考のため、できるだけシンプルなものを紹介してくれると助かります ということです
オープンソースとは、ソースコードを公開しているソフトウェアのことだけを指しています
GPLなどライセンスに関することは・・・よくわかっていません
問題にならないもの という意味合いです
説明不足ですいません
聞きたいことは
オブジェクト指向にも色々やりかたがあり
1.クラスベース方式 -- クラスを定義し、それを元にインスタンスを生成する方式である。継承ベースともいう。
2.プロトタイプベース方式 -- 既存のインスタンスを元に、新たなインスタンスを生成する方式である。インスタンスベースともいう。
3.Mixin方式 -- さまざまなオブジェクトの原型を組み合わせて一つのオブジェクトを構成する方式である。
の3つの方法があるとwikiにはあります
この方法を使っているソースコードを公開されているサイト、ソフトなどを紹介してもらいたい
ということです
もちろん、上の3つの方法を組み合わせたりして使っているのもあると思いますが
参考のため、できるだけシンプルなものを紹介してくれると助かります ということです
オープンソースとは、ソースコードを公開しているソフトウェアのことだけを指しています
GPLなどライセンスに関することは・・・よくわかっていません
問題にならないもの という意味合いです
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: いろいろなオブジェクト指向
3つを同時に実装している言語に付いては私は思いつきませんし、私の拙い知識ではC++ではそのまま実装できないと思います。
なので実現できる機能を持った言語の質問ですかとお聞きしましたが、なにか特定の言語で実現したのでしょうか?
[参考]
プロトタイプベースは言語仕様の問題なのでC++としては根本的に出来ないのですが、こんな事です。
「プロトタイプ(prototype)によるJavaScriptのオブジェクト指向:CodeZine」
http://codezine.jp/article/detail/222
C++でスカラ変数の利用を禁止してすべての変数のクラスを作り継承すれば似たようなことは出来なくもない?
「C++ で ruby 風 Mix-in - みねこあ」
http://d.hatena.ne.jp/minekoa/20070810/1186752546
で、dicさんの聞きたい意図が見えてきません。こんな事を聞きたいわけではないと思うのですが?
なので実現できる機能を持った言語の質問ですかとお聞きしましたが、なにか特定の言語で実現したのでしょうか?
[参考]
プロトタイプベースは言語仕様の問題なのでC++としては根本的に出来ないのですが、こんな事です。
「プロトタイプ(prototype)によるJavaScriptのオブジェクト指向:CodeZine」
http://codezine.jp/article/detail/222
C++でスカラ変数の利用を禁止してすべての変数のクラスを作り継承すれば似たようなことは出来なくもない?
「C++ で ruby 風 Mix-in - みねこあ」
http://d.hatena.ne.jp/minekoa/20070810/1186752546
で、dicさんの聞きたい意図が見えてきません。こんな事を聞きたいわけではないと思うのですが?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: いろいろなオブジェクト指向
>>softyaさん
オブジェクト指向で、いろいろ手法があって、ソースの書き方などもいろいろあるようですが
その基本を覚えこんで、その実践例を見てみたいということです
どういった場合にどういった、手法が有効なのか、デザインパターンがありますが
どういったときに使うのか、実際に使われているものを見てみたいということです
一般企業のソースコードは見れないので、オープンソースで活動してて、デザインパターンなどを
もちいて作られているソフトウェアのソースコードを見たいので、ご存知でしたら紹介をということです
言語を書いてませんでした C/C++です
ほかの言語もわかるにはわかるのですが、応用まではわからない状態です
完璧をもとめすぎ・・・かもしれないですね
オブジェクト指向で、いろいろ手法があって、ソースの書き方などもいろいろあるようですが
その基本を覚えこんで、その実践例を見てみたいということです
どういった場合にどういった、手法が有効なのか、デザインパターンがありますが
どういったときに使うのか、実際に使われているものを見てみたいということです
一般企業のソースコードは見れないので、オープンソースで活動してて、デザインパターンなどを
もちいて作られているソフトウェアのソースコードを見たいので、ご存知でしたら紹介をということです
言語を書いてませんでした C/C++です
ほかの言語もわかるにはわかるのですが、応用まではわからない状態です
完璧をもとめすぎ・・・かもしれないですね
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: いろいろなオブジェクト指向
もう一度書きますが、「クラスベース方式」、「プロトタイプベース方式」、「Mixin方式」は言語のクラスオブジェクト指向の実装方式の話ですので、オブジェクト指向の使い方やデザインパターンの話とは別です。dic さんが書きました:>>softyaさん
オブジェクト指向で、いろいろ手法があって、ソースの書き方などもいろいろあるようですが
その基本を覚えこんで、その実践例を見てみたいということです
どういった場合にどういった、手法が有効なのか、デザインパターンがありますが
どういったときに使うのか、実際に使われているものを見てみたいということです
一般企業のソースコードは見れないので、オープンソースで活動してて、デザインパターンなどを
もちいて作られているソフトウェアのソースコードを見たいので、ご存知でしたら紹介をということです
言語を書いてませんでした C/C++です
ほかの言語もわかるにはわかるのですが、応用まではわからない状態です
完璧をもとめすぎ・・・かもしれないですね
(1)根本的にC++は、「クラスベース方式」であって「プロトタイプベース方式」、「Mixin方式」ではありません。この理解はよろしいですか?
(2)今までの話の流れからすると、オブジェクト指向的な書き方、デザインパターンの実用例を見たいとしか読み取れないのですが違いますか?
(3)なので、「プロトタイプベース方式」、「Mixin方式」にこだわることは出来ないし、拘る必要はないと考えます。違いますのでしょうか?
話が通じていない気がしますので(1)(2)(3)を明確にyes/noでお答え願います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: いろいろなオブジェクト指向
> 双方ともに違うやり方でやっているので、
> 一緒にするのが困難というか、いちから組みなおし状態です
『とある人とdicさんとで、オブジェクト指向の話をしているはずだが、
話がかみ合わない。dicさんなりに調べてみたところ、
オブジェクト志向にも種類があって、その種類が違っているのが、
原因のようだ。』
とdicさんは考えているようですが、2人の話がかみ合わないのはおそらく、
一方または双方のオブジェクト指向に対する理解不足でしょう。
一緒にするのが困難と言うのも、一方または双方の作りが悪かったり、
リファクタリングのスキル不足だと思います。
> 一緒にするのが困難というか、いちから組みなおし状態です
『とある人とdicさんとで、オブジェクト指向の話をしているはずだが、
話がかみ合わない。dicさんなりに調べてみたところ、
オブジェクト志向にも種類があって、その種類が違っているのが、
原因のようだ。』
とdicさんは考えているようですが、2人の話がかみ合わないのはおそらく、
一方または双方のオブジェクト指向に対する理解不足でしょう。
一緒にするのが困難と言うのも、一方または双方の作りが悪かったり、
リファクタリングのスキル不足だと思います。
Re: いろいろなオブジェクト指向
>>softyaさん
1.yes
2.yes (実用例をみたい)
3.yes
>>たいちうさん
なるほど お互いにオブジェクト指向について理解が足りていない可能性もありますね
1.yes
2.yes (実用例をみたい)
3.yes
>>たいちうさん
なるほど お互いにオブジェクト指向について理解が足りていない可能性もありますね
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: いろいろなオブジェクト指向
とりあえず、私もオープンソースでデザインパターンを多用している例は知らないので、デザインパターンの実例が書いてあるサイト(Java)をご紹介します。
「事例で学ぶデザインパターン -INDEX-」
http://www.ogis-ri.co.jp/otc/hiroba/tec ... index.html
「サルでもわかる 逆引きデザインパターン 第1章 はじめてのデザインパターン はじめに」
http://www.nulab.co.jp/designPatterns/d ... ns1-1.html
「ニュース検索 - japan.internet.com デザインパターンの使い方」
http://japan.internet.com/search?p=0&s= ... 8%A1%BA%F7
あと基本的なことですが、次のようなことが守られているかも大事だと思います(C++)
「EffectiveC++入門」
http://www002.upp.so-net.ne.jp/ys_oota/effec/index.htm
あとお互いにオブジェクト指向設計レベルでどの様な話し合いが行われたのかが気になるところです。
「事例で学ぶデザインパターン -INDEX-」
http://www.ogis-ri.co.jp/otc/hiroba/tec ... index.html
「サルでもわかる 逆引きデザインパターン 第1章 はじめてのデザインパターン はじめに」
http://www.nulab.co.jp/designPatterns/d ... ns1-1.html
「ニュース検索 - japan.internet.com デザインパターンの使い方」
http://japan.internet.com/search?p=0&s= ... 8%A1%BA%F7
あと基本的なことですが、次のようなことが守られているかも大事だと思います(C++)
「EffectiveC++入門」
http://www002.upp.so-net.ne.jp/ys_oota/effec/index.htm
あとお互いにオブジェクト指向設計レベルでどの様な話し合いが行われたのかが気になるところです。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: いろいろなオブジェクト指向
C++で書かれているRubyインタプリタのソースコードを読むというのはどうでしょう。
Rubyの言語仕様を勉強するだけでもカルチャーショックを体験できると思いますけど。
Rubyの言語仕様を勉強するだけでもカルチャーショックを体験できると思いますけど。
Re: いろいろなオブジェクト指向
>>softyaさん
リンク先 参考にさせてもらいます
>>ISLeさん
Rubyの言語仕様ですね
いっぺんカルチャーショック受けてきます
いっぺんには見切れないので
ひとまず解決とさせてもらいます
リンク先 参考にさせてもらいます
>>ISLeさん
Rubyの言語仕様ですね
いっぺんカルチャーショック受けてきます
いっぺんには見切れないので
ひとまず解決とさせてもらいます