OOP
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001デフォルトの名無しさん
2010/09/10(金) 19:44:500809デフォルトの名無しさん
2010/10/15(金) 21:26:480810デフォルトの名無しさん
2010/10/15(金) 21:31:37まさかの同窓。。
とりあえず、あまり母校の名に泥を塗るような言動は止してくれ、頼むから。
0811デフォルトの名無しさん
2010/10/16(土) 04:29:02> 処理ナンバーで一括管理してる
管理できなくなってるから困ってるんじゃねーの?
0812デフォルトの名無しさん
2010/10/16(土) 18:33:13とにかく、箇条書きは構造がシンプルだから、後々の応用が利いて良いんだよ。
その証拠にRDBも成功してるじゃん。Oracleとか自社の検定まで作って、ウハウハ。箇条書きすげぇって。
オブジェクト指向型のDBも有るけど、全然人気出なかったし。そんなもんだよ。
俺ら、もう良く知ってるわけよ。
テキストファイルで書いといてgrepしても良し、CSVで書いてエクセルで読み込んでも良し、
エクセルだったら、オートフィルタや関数やVBAも使えるし、あー便利便利。
ただ、かっこ悪い気がするっていう。
でも本当はかっこいいんだよ、箇条書き。
LinuxBoot時の山のようなinitには感動すら覚える。
0813デフォルトの名無しさん
2010/10/16(土) 19:59:52そのための多態とファクトリーパターンだろ、死ねよ。
0814デフォルトの名無しさん
2010/10/16(土) 23:08:36○ 箇条書きは構造がシンプルだから、バカでも理解できて良い
いや、わりと重要なことだけどな。世の中のみんなが天才ではないし。
0815デフォルトの名無しさん
2010/10/16(土) 23:16:090816デフォルトの名無しさん
2010/10/16(土) 23:25:30プログラマはOOP覚えろよ
0817デフォルトの名無しさん
2010/10/16(土) 23:54:570818デフォルトの名無しさん
2010/10/16(土) 23:59:45get/setだらけで実質ほとんどpublicフィールドになってたり
やたらややこしい事前条件を暗黙的に要求してきたり
何やってくれるのか全く想像できないメソッド名つけたり
やたらたくさんの機能を備えたクラスつくったり
そんなんするからOOPの可読性が悪いんじゃないかと勘違いする奴がでる
0819デフォルトの名無しさん
2010/10/17(日) 00:14:580820デフォルトの名無しさん
2010/10/17(日) 00:19:330821デフォルトの名無しさん
2010/10/17(日) 00:25:22まーわざと箇条書きとOOPを比較して、OOP派の人に無理に箇条書きを否定させる流れに持っていったからな。
そこは、「OOPも良いけど、箇条書きもいいね」って言えれば良かったのに、
それが出来ないのがOOP脳と言うかなんと言うか。。
2流なんだよ。俺が1流ってわけでもないがな。
0822デフォルトの名無しさん
2010/10/17(日) 00:27:140823デフォルトの名無しさん
2010/10/17(日) 00:36:550824デフォルトの名無しさん
2010/10/17(日) 00:49:33俺の悪知恵。
だけど、箇条書きって大概が箇条書きの箇条書きで2次元だから、
マトリックスになって、組み合わせが使えて、大概のことは出来るぞ。
A ○ ×
B ○ ○
C × ○
こんな感じでさ。
プログラムで言ったら配列に相当して、
その強力さとシンプルさと道具としての奥深さは、皆理解しているところだろ?
これ否定するとか、天に向かって唾吐くようなものだわな。
あえて吐かさせといて言うのもなんだが。
0825デフォルトの名無しさん
2010/10/17(日) 00:52:510826デフォルトの名無しさん
2010/10/17(日) 00:57:470827デフォルトの名無しさん
2010/10/17(日) 00:59:40まぁcsvがいいか多態がいいかは状況によるよ
0828デフォルトの名無しさん
2010/10/17(日) 03:14:29CSVやTSVじゃ構造化したデータを表現できねーだろ。
DBのテーブルならそんなんでもいいがな。
0829デフォルトの名無しさん
2010/10/17(日) 11:14:59箇条書きで手に負えるような単純なもん作ってるうちはそれでいいが、
現代のプログラムはそれじゃおっつかない。だからOOPが必要、ってこったな。
例の彼はプログラマではないみたいだし、OOPが必要になるほど複雑度の高い
プログラムを書いたことがないんだろうな。
ワンライナー書いて「俺って天才ハッカーwww」とか勘違いしてるタイプと想像。
あまり誰も言わんが、ワンライナーを賞賛する文化って、教育上有害だと思うんだよな。
ああいうのは、非実用的で実戦で使うのは有害な(だからこそ面白い)お遊びなんだ、
っていうのをもっと喧伝した方がいいと思う。
0830デフォルトの名無しさん
2010/10/17(日) 12:05:27もちろん使い方次第だけど、ワンライナーが有害だとは思わないな。
書き捨てのスクリプト以外でワンライナー使うのは駄目。
0831デフォルトの名無しさん
2010/10/17(日) 12:46:470832デフォルトの名無しさん
2010/10/17(日) 12:55:40コードと仕様書から自動的にドキュメントを生成するのってない?
仕様はもちろんZ言語です
0833デフォルトの名無しさん
2010/10/17(日) 14:29:12ScalaのSpecsみたいのとかはどうだ。テストケース=仕様書。
0834デフォルトの名無しさん
2010/10/17(日) 14:54:430835デフォルトの名無しさん
2010/10/17(日) 15:01:11箇条書き云々とは全く関係ないと思うんだが
0836デフォルトの名無しさん
2010/10/17(日) 15:09:270837デフォルトの名無しさん
2010/10/17(日) 16:30:560838デフォルトの名無しさん
2010/10/17(日) 16:43:46継承すればそれが無くなる
0839デフォルトの名無しさん
2010/10/17(日) 22:48:20継承じゃなくて多態だろ?
0840デフォルトの名無しさん
2010/10/17(日) 22:56:08おっぱお
0841デフォルトの名無しさん
2010/10/17(日) 23:22:59switchを消せるのは、同じインタフェースに対して別々のオブジェクトを作れることの恩恵に過ぎない。
0842デフォルトの名無しさん
2010/10/17(日) 23:23:250843デフォルトの名無しさん
2010/10/17(日) 23:58:300844デフォルトの名無しさん
2010/10/18(月) 00:06:150845デフォルトの名無しさん
2010/10/18(月) 19:15:180846デフォルトの名無しさん
2010/10/19(火) 18:30:09こんなとこでやるなよw
気がつくまで時間かかるわ
0847デフォルトの名無しさん
2010/10/21(木) 12:39:10俺「バカオヤジが片付けむちゃくちゃだから新しい棚買おうよ」
母「そうね、明日買いにいきましょう」
明日
俺「オヤジ 車貸してくれ」
父「おぅ、あそこの電気がつかんが・・・ちょっと電気の球とってこい」
俺「・・・」
父「ここの球がなぁ、前からつかん」
俺「・・・(無言で立ち去り部屋で布団に入りヌクヌクする)」
遠くから
父「あいたたたたた・・・ピー(糖尿病の血糖値を測る測定器の音)」
30分後
母「お父さんが低糖になるからごはんあげてやって」
俺「・・・(メシをつぐ)」
父「(メシをうけとって)おい、電気買ってこいよ(ムシャクチャ)」
母「・・・」
俺「・・・」
俺「いつ棚買いに行く?(いつになったらこいつ死んでくれるだろう・・・)」
0848デフォルトの名無しさん
2010/10/21(木) 23:03:56車持ってないお前が糞でFA?
0849デフォルトの名無しさん
2010/10/22(金) 16:17:450850デフォルトの名無しさん
2010/10/25(月) 05:22:38デレ期はまだですか!
0851デフォルトの名無しさん
2010/10/25(月) 06:06:150852デフォルトの名無しさん
2010/10/25(月) 06:13:310853デフォルトの名無しさん
2010/10/26(火) 11:16:16ふしぎ!
0854デフォルトの名無しさん
2010/10/26(火) 23:22:25死ぬことも出来ないってのもなかなか大変そうだ。
OOPや取り巻きのプログラマたちもそう思ったのだろう。
儚さ、刹那主義。滅びの美学。
縦割り構造。利権主義。お役所仕事。たらい回し。
とても日本的で良いじゃないか。
C言語は良すぎてダメだね。永遠に残るし。
0855デフォルトの名無しさん
2010/10/27(水) 13:56:020856デフォルトの名無しさん
2010/10/27(水) 15:37:26クラスの機能を最低限満たせばよいですかね
0857デフォルトの名無しさん
2010/10/27(水) 16:39:31細かい設定はほかに持つのがすきかな。
でもコンストラクタで全て終わらせるのもそれはそれですきだけどな。
どういうのがいいのかねえ。
0858デフォルトの名無しさん
2010/10/27(水) 18:12:59生成したら基本的には、もう使える状態であるべきだと思う。
細かい設定もコンストラクタの引数でやるのが理想ではあるなあ。
作ったらもうほとんど弄る必要がなくて、役割上、本当に途中変更が必要な属性以外は
読み取りしかできないような感じにして、どうしても変更したいならオブジェクト作り直し。
…とはいえ、そういうワケにもいかんって場合もやっぱある。
その線引きは難しいところ。
でも最低限「生成しただけじゃ使い物にならない」ってのは避けたいかな。
出来れば生成しただけで一応使えるように、そうでなくても
生成→有効化、の2手順(有効にする前にやっておくべきことがあるクラスの場合)で一応使えるようにしておきたい。
0859デフォルトの名無しさん
2010/10/27(水) 18:20:24生成コストがどうのとか例外がどうのとかそんなないようだったきがするんだけど・・・。
こういう考えだと生成と各種変数の初期化くらい?
その後用途別の初期化メソッドを呼ぶのかね。
0860デフォルトの名無しさん
2010/10/27(水) 19:29:160861デフォルトの名無しさん
2010/10/27(水) 20:09:30コンストラクタはprivateで隠蔽なのかな?
0862デフォルトの名無しさん
2010/10/27(水) 20:21:25ありがとうございました。
0863デフォルトの名無しさん
2010/10/27(水) 20:44:060864デフォルトの名無しさん
2010/10/27(水) 22:36:22一部の言語では複数名称のコンストラクタを持てるから(Delphiとかそうだった希ガス)
そういう言語では単に各種用途のコンストラクタを用意する、になるのかな?
0865デフォルトの名無しさん
2010/10/28(木) 00:42:20コンストラクタって名前がダメなんだろうな、なにか特別な感じがして。
こんなのただの初期化用関数なんだから、深く考えるなよ。
init( &hoge ); だったら誰も悩まないのにな。
インスタンス確保したら勝手に初期化されてる、ってのは一見便利そうに感じるんだけど、
実際には引数を渡さなきゃならなかったり、完全に全自動ってわけにはいかないんだよな。
なんつーか、中途半端。別に初期化用関数方式でも構わないっちゃ構わない現状。
そのくせ言語レベルで組み込まれている仕組みだから、なにか活用しなきゃいけない気がして困る。
その点デストラクタは有用だな。とはいっても、GC無い言語だと意味半減だけど。
まーGCある言語だと、デストラクタ自体の意味が別の意味で半減して、これまたなんとも。
個人的にはコンストラクタもデストラクタも無いほうが良いと思っていて、
無くても問題ないように言語使用を練り直す方向が正しいと思ってる。
オブジェクト自身がコンストラクタやデストラクタを持ってるってのはガンだと思うから、
どこか別のところへ持ってくなり、なんらか別のトリックを用意するなり。
0866デフォルトの名無しさん
2010/10/28(木) 00:54:39初期化の仕組みで変換もするって、もうおかしいだろ。
そんで困って、コンストラクタでの暗黙の型変換を禁止するへんな予約語が追加されたんだっけか。
言語レベルで変な仕組み導入しまくって後で困ってるっていうね。
標準のIOストリームもそうだけどさ。色々やって、結局printf万歳だもんな。
バカの考え休むに似たりってか。あーC言語は平和だなぁ。
0867デフォルトの名無しさん
2010/10/28(木) 00:59:27大体はファクトリーパターンとか使うんだろ?
もうなんなんだろうね。
そもそも初期化ってのはそれなりに複合的な処理なんだよ。あっちゃこっちゃが相互作用で影響してくる。
そんな処理が単一のオブジェクトのしたにぶら下がってること事態おかしいっちゃおかしい。
だから、結局大したことできないっつーね。
0868デフォルトの名無しさん
2010/10/28(木) 01:26:550869デフォルトの名無しさん
2010/10/28(木) 03:03:59相当のことやると漏れるようにできてんのか。なる。
0870デフォルトの名無しさん
2010/10/28(木) 08:31:10init( &hoge ); だと init() の管理は誰がやるんだ。
0871デフォルトの名無しさん
2010/10/28(木) 11:24:06GCある言語だとデストラクタの扱いは微妙なんじゃなかったか
最近はusingやwithみたいに特定のスコープを抜けたときに処理するという仕様が多かったような
0872デフォルトの名無しさん
2010/10/28(木) 11:38:53明示的ないしスコープから抜けた時に明に呼ばれるものがデストラクタで
参照が無くなってる場合に暗に呼ばれるものがファイナライザ
0873デフォルトの名無しさん
2010/10/28(木) 12:01:320874デフォルトの名無しさん
2010/10/28(木) 13:15:010875デフォルトの名無しさん
2010/10/28(木) 13:22:57プロトタイプベースでもオブジェクト自身はコンストラクタでは…ないよな?
0876デフォルトの名無しさん
2010/10/28(木) 13:24:23thisが使えない初期化リストは…オブジェクトのものと言い難いかもしれない。
いや、初期化リストはコンストラクタと呼ばないのかもしれない。
俺は俺が何をいってるのか、わからないのかもしれない。
0877デフォルトの名無しさん
2010/10/30(土) 18:31:12って、今日はオカルトキャラで行こうかと思ったけど、無理だったいつもの人。
オブジェクト指向・・・オブジェクト・・・・オブジェクトって何?
二通り思い浮かぶ。
1.オブジェクト=モノ
だけど、物って言っちゃうと、アホっぽいというか。物指向って即物的というか。
それを素晴らしいアイデアのように言われても。なぁ。
2.オブジェクト=対象
対象って言うからには、何かの対象なわけで、じゃあ、オブジェクトは何の対象なの?って言われれば、
オブジェクトは処理の対象なわけで。
英語の文法を考えてもわかるけど、述語もなしに、対象だけポツンっと出てくることって無い訳で。
あくまで、処理側から目線で、自分の処理の対象はアレですって意味合いだから。
だから、オブジェクトがメソッド持ってて、自分のメンバメソッドの処理の対象は自分だから、
自分は自分のメソッドの対象で、すなわち自分は対象=オブジェクトですってのは
何かふに落ちない。
自分は自分自身の持つ機能の対象だから、自分は対象です。ほらなんか変だ。
どっかでおかしいんだよね、OOP。
そのおかしさをずっと引きづってる。ウソが雪だるま式。掛け違えたボタン。
0878デフォルトの名無しさん
2010/10/30(土) 18:42:32色々足りてないんでねーのもぅ
0879デフォルトの名無しさん
2010/10/30(土) 18:58:140880デフォルトの名無しさん
2010/10/30(土) 20:04:580881デフォルトの名無しさん
2010/10/30(土) 22:56:19オブジェクトひとつで完結するわけじゃないんだから
処理を呼び出される対象でいいじゃん
0882デフォルトの名無しさん
2010/10/31(日) 02:26:15だったらそれは、C言語だよ。
0883デフォルトの名無しさん
2010/10/31(日) 09:37:340884デフォルトの名無しさん
2010/10/31(日) 12:18:440885デフォルトの名無しさん
2010/10/31(日) 12:28:47いまさら「オブジェクト」っていう言葉の定義を云々して何がしたいんだ?
0886デフォルトの名無しさん
2010/10/31(日) 12:43:030887デフォルトの名無しさん
2010/10/31(日) 12:57:100888デフォルトの名無しさん
2010/10/31(日) 13:14:52ちゃんとカプセル化したら依存関係が整理できて再利用しやすくなるという事実のみが大事
0889デフォルトの名無しさん
2010/10/31(日) 13:28:31同意。とにかく、整理は全てのプログラマの恩恵となる。
KISSの次はOOP。
0890デフォルトの名無しさん
2010/10/31(日) 13:31:18依存関係が整理できて再利用しやすくする事そのものがカプセル化ですか?
0891デフォルトの名無しさん
2010/10/31(日) 13:35:31依存関係の切り離しそれそのもの
0892デフォルトの名無しさん
2010/10/31(日) 14:45:12依存関係の切り離しは何の関係も無いだろ。
たしかに内部状態と外は切り離されるが、その代わりメソッドが依存するだろ。
0893デフォルトの名無しさん
2010/10/31(日) 14:50:32だって、C言語でも普通にするでしょ、カプセル化。
ハンドルとかで対象物を抽象化するわけな。
だけど、対象物を抽象化したからって、オブジェクト指向ってわけでは無いよな。
0894デフォルトの名無しさん
2010/10/31(日) 14:52:52Cや関数型言語でも多態できるしな
0895デフォルトの名無しさん
2010/10/31(日) 14:53:40だけど、マルチメソッドになると、メソッドはグローバル空間に行っちゃう。
だからより一層OOPって何なのって話になる。本当は無いんじゃないか?そんなもの初めから。
0896デフォルトの名無しさん
2010/10/31(日) 14:56:26実際関係ないと思うよ。
だってマルチメソッドだと、クラスやオブジェクトがメソッド抱えてるって感じじゃないし。
要は動的オーバーロードだし。
0897デフォルトの名無しさん
2010/10/31(日) 15:00:40そんな曖昧な物いくら考えても有益なことなんて一つも出ないぞ。
0898デフォルトの名無しさん
2010/10/31(日) 15:02:040899デフォルトの名無しさん
2010/10/31(日) 15:02:41内部状態は全て自分のメソッドからのみ変更される。
これで依存関係が切れてなかったらそれは単なる設計ミス
内部状態が内部状態になってない。
0900デフォルトの名無しさん
2010/10/31(日) 15:06:23依存関係が切り離されてるんじゃなくて、
実装とインターフェースが切り離されてるだけだ。
0901デフォルトの名無しさん
2010/10/31(日) 15:08:180902デフォルトの名無しさん
2010/10/31(日) 15:12:48外部状態がどうなってるかを気にせず、
「この内部状態の時にこのメソッドが呼ばれたらこの内部状態に変わる」
という一貫した普遍性を維持するためのカプセル化だし
これを依存関係が切れてると言う。
0903デフォルトの名無しさん
2010/10/31(日) 15:19:05自分のメソッドと、自分以外の他オブジェクトは、
たとえカプセル化しても、メソッドを通じて依存しあってることには変わりない。
>自分の内部状態が自分のメソッドに依存しているのは当たり前だろ。
逆逆。
実装とインターフェースを分離することで、自分のメソッド(というかインターフェース)と内部状態(というか実装)を
依存「しない」ようにするのがOOPだろJK。
>これを依存関係が切れてると言う。(キリッ
聞いたこともない。OOPを支持する人って、やっぱこのレベルなんだな。
0904デフォルトの名無しさん
2010/10/31(日) 15:22:42依存しあってる?
使う側は使われる側の挙動に依存してるかもしれんが
使われる側は使う側の事情なんて何も気にせず、与えられた機能を実行するだけだぞ。
ライブラリの挙動がアプリの実装に依存するわけ無いだろ馬鹿か
0905デフォルトの名無しさん
2010/10/31(日) 15:22:57本当に聞いたことがない。悪いが。
0906デフォルトの名無しさん
2010/10/31(日) 15:24:480907デフォルトの名無しさん
2010/10/31(日) 15:32:12気にしなくてよくなるから、そのクラスの実装に関して依存関係はない。
で、その内部状態はカプセル化によって実現している。
0908デフォルトの名無しさん
2010/10/31(日) 15:41:19外から内部の実装を気にしなくても良くなる、というだけで、
内部から外の状態を気にしなくても良いと言うことにはならない。
なんか全て反対言うよな。頭おかしい。
レス数が900を超えています。1000を超えると表示できなくなるよ。