オブジェクト指向がうまく書けないなーと思ってたらデザインパターン勉強してないからだった

「おれの書くオブジェクト指向なんか変かも」とつぶやいたら、「デザインパターン勉強すれ」というナイスアドバイスをもらったなり。
6
Ryosuke Iwanaga @riywo

どうもオブジェクト指向を書いてると、状態を全部メンバ変数に持たせてしまって、外から順番に引数無しのメソッド叩くという作りになってしまう。これってどうなんだろう。

2010-05-05 02:46:30
Ryosuke Iwanaga @riywo

オブジェクト指向にしてる意味がないんだよな。まぁ再利用するたぐいのものでなければいいんだろうけど。

2010-05-05 02:47:16
Ryosuke Iwanaga @riywo

オブジェクト指向というよりも、単純に処理を分割していっただけのような気がする。グローバル変数ではなくてメンバ変数にした、というだけ。。。

2010-05-05 02:48:10
Ryosuke Iwanaga @riywo

まじめにオブジェクト指向を書いたことがないのが問題だな。

2010-05-05 02:48:45
Ryosuke Iwanaga @riywo

対話式のコマンドスクリプトを書くときに裏でオブジェクト一個作るだけという使い方だとどうしてもこうなってしまうよな。

2010-05-05 02:50:38
baca @baca_

@riywo どういうプログラムかわからないから何とも言えないのですが,状態を管理するならステートパターンだとおもうし,メソッドがある一定の順番で呼び出されるって決まりがあるならテンプレートメソッドパターンなんじゃないかなって思ったのですが…というデザインパターンの紹介です.

2010-05-05 02:51:04
Ryosuke Iwanaga @riywo

@baca_ あー、デザインパターン。。。それですね僕に欠けてるのは。。。

2010-05-05 02:52:21
baca @baca_

@riywo 僕も全部は知らないのですが…デザインパターンってそれ自信を勉強しようとすると破綻すると思うんですよね.あるプログラム書いていて,疑問に思ったときにデザパタの本を開いて勉強すると目から鱗だったり.

2010-05-05 02:53:38
Ryosuke Iwanaga @riywo

@baca_ まさにそんな気がします!ナイスアドバイスありがとうございます><

2010-05-05 02:54:17
Ryosuke Iwanaga @riywo

デザインパターン一切勉強したことなかった。。。プログラミングは基本全部独学。あとは「すげー」と思うモジュールを読んで参考にしてるだけだ。

2010-05-05 02:55:11
baca @baca_

@riywo @riywoちなみにおすすめはやっぱり原著(http://is.gd/bTVIoなんですけど難しいです.他にはオライリーのHead Firstが評判良いです.多分入り口を作るならHead Firstが良いかも

2010-05-05 02:56:05
Ryosuke Iwanaga @riywo

そうかそうか。だからいつもどうしたものかと困っていたんだ。。大抵落ち着くパターンがいくつかあるなーと思ってたけど、きっとデザインパターンで説明できるんだろうなー。

2010-05-05 02:56:43
Ryosuke Iwanaga @riywo

@baca_ うぅ、さらに良書の推薦まで!ありがとうございます。とりあえずHead Firstに超速で手を出してみたいと思いました。GoFはそのあとで。。。

2010-05-05 02:59:02
Ryosuke Iwanaga @riywo

みんなデザインパターンとかどこで勉強するものなんだろう。CSとかだと学校でやるものなのかな。それとも私的に勉強してるのかな。

2010-05-05 02:59:53
Ryosuke Iwanaga @riywo

オブジェクト指向というと、どうも継承とかポリモーフィズム使わないといけないのかなーと思ってしまうけど、実はほとんど使った試しがないかも。。。そんなちゃんと設計して書いたことない。。。

2010-05-05 03:01:59
baca @baca_

@riywo あとデザインパターンが乗ってる本だとオブジェクト開発の奥義(http://is.gd/bTW9I)なども.こいつはデザインパターンオンリーではなくてアジャイルやオブジェクト指向開発の方法論の中でデザパタ書いてますよ.僕も勉強中なのでお互い頑張りましょう!

2010-05-05 03:02:26
Ryosuke Iwanaga @riywo

この辺がJavaJavaしてる人はうらやましーなと思ったりする。Perlだと適当に書けちゃう。。。

2010-05-05 03:02:40
Ryosuke Iwanaga @riywo

@baca_ なるほどなるほど!これも勉強になりそうですね。チェックしておきます。がんばりましょー^^

2010-05-05 03:04:24
高見知英 @TakamiChie

@riywo プログラミングのコミュニティにいると普通にデザパタの話題が出る→話題についてきたくって調べる→あ、なんだ、こんな感じかって程度。最初はざっくりとしか勉強しない。細かなことはいざ使わなきゃいけないときに調べなおせばいいし。

2010-05-05 03:04:27
Ryosuke Iwanaga @riywo

どうも手続き型以外のプログラム書こうと思ったときに、手が動かないなーと思ってたのは、こういう一段上の視点が無いからなんだろうな。

2010-05-05 03:05:39
miyakou @miyakou1982

@riywo  オブジェクト指向言語ばかり使ってるとどういうオブジェクトが美しいのか疑問になる>デザパタがいいらしい>勉強する デザパタを学ぶなら「オブジェクト指向のこころ」がおぬぬめ http://bit.ly/afJyva

2010-05-05 03:07:07
Ryosuke Iwanaga @riywo

@miyakou1982 おぉ!これは良さそうですね!ありがとうございます!

2010-05-05 03:08:33
Ryosuke Iwanaga @riywo

やっぱ結構みんなJavaとかCなんとかとか使ってるのかなー。僕の場合、Cをそれなりに触ったあと、C++とJavaをほんの少し触って、あとPerlという謎の順番なのでオブジェクト指向と結構縁遠い。。。

2010-05-05 03:10:07
Ryosuke Iwanaga @riywo

@TakamiChie ですねー。とりあえずざっくりと勉強したいところです。

2010-05-05 03:11:05
miyakou @miyakou1982

@riywo いえいえ 僕もこれでデザパタ学んで、少しはオブジェクト指向的なプログラム書けるようになったんで、良書でっせ 

2010-05-05 03:11:33