5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

デザパタ + python

1 :デフォルトの名無しさん:2007/02/26(月) 04:20:42
pythonでデザパタをやろうと思ったが、コード例が少なくて困っている、・・・
そんな人たちが協力し合うスレ、

関連スレ
Pythonのお勉強 Part17
http://pc10.2ch.net/test/read.cgi/tech/1171613101/

「【GoF】デザインパターン 6
http://pc10.2ch.net/test/read.cgi/tech/1141846078/

2 :デフォルトの名無しさん:2007/02/26(月) 04:38:15
デザパタを勘違いしているのではないか。

3 :デフォルトの名無しさん:2007/02/26(月) 04:47:21
この話題でpythonの本スレが荒れたので隔離スレの意味合いも込めて・・・
あと、pythonではこのパターンとこのパターンは区別する意味が無いとか、いや違う
とかで定期的に荒れるので、そういうのも含めて隔離(ぉ

4 :デフォルトの名無しさん:2007/02/26(月) 04:48:03
>2
Pythonスレは、よくデザパタ議論で荒れるから
隔離スレとして立てたんじゃね?

5 :デフォルトの名無しさん:2007/02/26(月) 05:31:01
なる程。事情知らずに口出ししてスマソ。

6 :デフォルトの名無しさん:2007/02/26(月) 05:43:14
「pythonで使うデザインパターン」のurlはまだ?

7 :デフォルトの名無しさん:2007/02/26(月) 06:15:45
>>6
python本家スレ荒してる馬鹿が今書いてる
ここ使って続きかくんじゃねーの

8 :デフォルトの名無しさん:2007/02/26(月) 06:57:13
>python による Chain Of Responsibility
http://www.h3.dion.ne.jp/~ytakagi/ChainOfResponsibility.html

9 :デフォルトの名無しさん:2007/02/26(月) 07:02:54
こないだ本スレに流れたのはこれかw
>[Python-ml-jp 1482] Re: Template Method パターン
>ttp://www.python.jp/pipermail/python-ml-jp/2002-May/001480.html

10 :デフォルトの名無しさん:2007/02/26(月) 09:01:43
なにが起こったんだ……
と思ったら本スレがかなり荒れたのね

ちょろ見して思ったのは
頻繁にJavaではJavaでは、と出てくるが、
JavaだけじゃなくてC++やSmalltalkやその他のサンプルも目を通した方がいいんでねーかということ。
Java一辺倒じゃ本質は何もわからんとおも。

で、本家のGoFは読んだのかの。

11 :デフォルトの名無しさん:2007/02/26(月) 11:06:59
本スレの211にもあるけど、「俺オブジェクト指向」だから期待薄。

12 :デフォルトの名無しさん:2007/02/26(月) 15:26:51
Javaだけがオブジェクト指向!って雰囲気でしたが
きっとそこから語ってくれるはずだ(あれ、それだとスレ違いだな?)

13 :デフォルトの名無しさん:2007/02/26(月) 17:47:25
あー、そういう趣旨のスレだったのか。wktk

14 :デフォルトの名無しさん:2007/02/26(月) 19:00:17
サンプルコードがpythonなら何でもいいんじゃない?

15 :デフォルトの名無しさん:2007/02/26(月) 21:44:34
JavaのコードをそっくりそのままPythonに移植して
デザパタできたよー\(^O^)/


ってアフォかw

16 :5 + 7 + 11 = 23:2007/02/27(火) 08:00:03
生成に関するパターン
Abstract Factory パターン
Builder パターン
Factory Method パターン
Prototype パターン
Singleton パターン

構造に関するパターン
Adapter パターン
Bridge パターン
Composite パターン
Decorator パターン
Facade パターン
Flyweight パターン
Proxy パターン

振る舞いに関するパターン
Chain of Responsibility パターン
Command パターン
Interpreter パターン
Iterator パターン
Mediator パターン
Memento パターン
Observer パターン
State パターン
Strategy パターン
Template Method パターン
Visitor パターン


17 :デフォルトの名無しさん:2007/02/27(火) 10:05:46
まー、Javaではある程度仕事として取り組んでいるところは、
当たり前のこととして使っているわけで、
(そのあたりは C++も同じだと思うけど)
Python だけ使えませんということでは、それじゃ、
オモチャの言語だね、と言われてしまっても仕方がない。

まー、現状はそんなとこ.
この現実を見据えるところから出発しないとね。

使う使わないはともかく、
基本はきちんと押さえておかないと。

基本もできないない言語(である者たち)が、
一方でPerlを嘲笑したりしてる。おかしいよね。

同じ理屈でJavaから嘲笑されたら、反論するんだろうか?

嘲笑されて当然です、と素直に受け入れるべきだ。
すべてはそこから始まると思う。

18 :デフォルトの名無しさん:2007/02/27(火) 10:34:00
いやぁJava使ってるとこでもまともにデザパタ使えてるところなんて少数なんじゃないの?
社外のあまりのレベルの低さにびっくりしたことがある。

19 :デフォルトの名無しさん:2007/02/27(火) 10:57:15
我々は偉大である
君たちは間違っている
と言っても誰も話を聞いてはくれないでしょう

20 :デフォルトの名無しさん:2007/02/27(火) 11:19:06
ある機能を実現するには、この言語ならどう設計すればいいか?と
考えないで、Javaの○○はPythonだと何?みたいな直訳的思考しか
できない。それで、Java以外のあらゆる言語を出来損ないのJava
だと思い込む。ほんと哀れだよな。

21 :デフォルトの名無しさん:2007/02/27(火) 11:40:42
Peter Novig くらいは当然読んでるんだろうな。

22 :デフォルトの名無しさん:2007/02/27(火) 11:43:56
Norvigだ。

23 :デフォルトの名無しさん:2007/02/27(火) 12:19:58
>>20
良いこと言ってますね。

> 3日間で、Pascal の文法を学ぶことは可能かもしれない(類似した言語
> を既に知っていれば)が、その文法の利用法までは十分には学べない。
> つまり、例えばあなたが Basic プログラマーであるとして、Basic スタ
> イルでPascal の文法を利用したプログラムの書き方を学ぶことはできる
> かもしれないが、Pascal が実際のところ、何に向いているか(向いてな
> いか)を学ぶことはできない。
ttp://www.yamdas.org/column/technique/21-daysj.html


24 :デフォルトの名無しさん:2007/02/27(火) 14:17:48
デザインパターン使おうと思うより基本APIの設計をパクろうとおもったらデザインパターンになっていたというのが多い

25 :デフォルトの名無しさん:2007/02/27(火) 14:32:49
>>23
言語の問題じゃないだろ。
コードの修正をしようとしたときに、親クラス直して、
それが当たり前と思い、なにが問題なのかも分りもしない。

自分は決してすぐれたJavaの使い手ではなかったかもしれないが、
それをやってしまったらダメなんだ、それをやらなきゃいけない場合はもちろんある、
だけどそのとき、やってはいけないことをしてるんだという自覚を持て、
とやかましく言われたよ。

そういう根本のところで開き直るなって。
そういうところがダメなんだ、Pythonは。

言語の問題じゃねえだろ。
そんなもん、オブジェクト指向じゃねえんだっていうの!!!

26 :デフォルトの名無しさん:2007/02/27(火) 14:40:12
釣りにひっかかってやる。

コードの修正のときに親クラス直せ、と誰か言ったのか?

> そういうところがダメなんだ、Pythonは

なんでPythonが出てくるの?
言語の問題にしてるのはお前自身だろ。

27 :デフォルトの名無しさん:2007/02/27(火) 14:46:37
>>26
面白いこと、言う奴だな。
お前は、親クラスを直さずにすませるには、どうすればいいのか
知っているのか?
まず、それがダメなことだと、自覚すること。
そして、設計やコードの組み方を学ぶこと。

もちろんお前もそれは知っていることだろう。
そしてお前は結論した。

デザパタ不要。
ご立派な結論だ。逝ってよし。

28 :デフォルトの名無しさん:2007/02/27(火) 14:51:51
やべえ真性だ

29 :デフォルトの名無しさん:2007/02/27(火) 14:54:49
>>28
図星なんだろ。
うせろ。

言っておくが、俺は sage では書かんからな。
絡めば、この無様なスレが上に上がりっぱなしになるから、そのつもりで。

30 :デフォルトの名無しさん:2007/02/27(火) 14:57:00
そもそも Python は、親クラスにあんまり強制力がないからなぁ。
ダックタイピングだから、オーバーライドしても後方互換性保ちつつインターフェース変え放題だし、
やろうと思えば、親クラスの実装をまるごと入れ替える事も可能だし。(さすがにダーティハックだけど)

Javaの制約と規則による安全なプログラミングも魅力的だけど
LLな言語っぽい、ゆるゆる型付けのプログラミングも楽しいよね。

31 :デフォルトの名無しさん:2007/02/27(火) 15:09:30
>>29
悪いこと言わないからsageたほうがいいんじゃない?
このスレで無様なのはあんただけだから

32 :デフォルトの名無しさん:2007/02/27(火) 15:27:11
>>31
おいおい、情けないレス返すなよ。

親クラス直して、「それで良し」と叫ぶのがPythonの作法なんだ、
と言えばいいじゃないか。

無理すんな。もうお前らがどういう連中かはお見通しなんだって。

33 :デフォルトの名無しさん:2007/02/27(火) 15:33:34
> 親クラス直して、「それで良し」と叫ぶのがPythonの作法なんだ

いやいや、逆だってば

34 :デフォルトの名無しさん:2007/02/27(火) 15:41:21
>>25
> コードの修正をしようとしたときに、親クラス直して、
> それが当たり前と思い、なにが問題なのかも分りもしない。
(略)
> そういう根本のところで開き直るなって。
> そういうところがダメなんだ、Pythonは。

意味が分からない。具体的に Python のコード例を示してくれない?

35 :デフォルトの名無しさん:2007/02/27(火) 15:43:03
なんで親クラス直したらだめなの?
ってゆーか親クラスってなに?どっからつながってる話?

36 :デフォルトの名無しさん:2007/02/27(火) 15:45:42
>>32
まとめてみるよ

1. デザパタ関連の話がPythonスレから追い出されたのは、
 「Pythonにデザパタが不要」だからではなく
 「Javaのコードを単に移植するだけならPythonスレでやる意味はない」から

2. >>20,23はあくまでも、「JavaにもPythonにもそれぞれの流儀がある」と言っているだけ

3. 親クラス云々はあんたが言いだしたこと
 「Pythonでは親クラスを直すことを問題視しない」などとは誰も(あんた以外)言っていない

4. あんたはそれらを誤解したうえで、「Pythonではデザパタが使えない」、
 または「Pythonユーザーはデザパタを理解できない」と主張し馬鹿にしている


さて、誰が無様なのか


37 :デフォルトの名無しさん:2007/02/27(火) 16:04:46
>>37
もう、面白い分析だな。ただ、一つ訂正しておいてやろう。

>Pythonではデザパタが使えない

あのね、こんなことは俺はいってない。

Pythonのデザパタを作ってみたいんだけど…、
といったところ、そんなものは不要。

Pythonは、あちこちその場その場でクラスを直しながら作るのが
流儀だ。Javaのやり方を持ち込むなと、罵倒されたわけだ。

俺は根に持つタイプでね、
そのお前らの作法とやらを、面白おかしく宣伝してやっている
までだ。

ただ、Pythonではデザパタ・コードはもちろん作れるだろ。
必要な機能は全部あるようだし。

ほかの奴には関係ないんだよ。
途中で飽きなきゃ、自分で全部作るから、他人なんぞ必要ないんだ。

飽きて、Javaに帰ったらごめんな。
(最後は、お前らじゃないPython使いへの言葉。飽きずにやりたいものだ。)

38 :デフォルトの名無しさん:2007/02/27(火) 16:10:19
言いたいことはだいたいわかったよ
たしかに面白おかしい

ま、末永くやろうや

39 :デフォルトの名無しさん:2007/02/27(火) 16:15:48
PythonとJavaじゃ根本の思想が違う。


静的な言語たるJavaやC++のデザパタを
ダックタイピングのPythonやRubyに適用しても
役に立たなかったり、もっと簡便な方法があったりする。


>>> Pythonは、あちこちその場その場でクラスを直しながら作るのが流儀だ
False

クラスの作り方、直し方が違うのであって
あちこちその場で直すのが流儀なのではない。


> 俺は根に持つタイプでね、
> そのお前らの作法とやらを、面白おかしく宣伝してやっているまでだ。

なんだ、ただの荒らしか。

40 :デフォルトの名無しさん:2007/02/27(火) 16:18:36
ああ、修正。

> クラスの作り方、直し方が違う

…と書いたが、言うほど違わないな。
ダックタイピングな部分を意識してればそれ以上は要らない。

41 :デフォルトの名無しさん:2007/02/27(火) 16:25:23
>なんだ、ただの荒らしか。
こっちに移住してくれたことを有り難く思わないとね

見てるぶんには面白おかしいんだから好きなだけやってほしいよ

42 :デフォルトの名無しさん:2007/02/27(火) 17:02:17
javaでデザインパターンやればいいじゃん。
なぜpythonにこだわる?
javaはいい言語だよ。
低級PGからハッカーまで誰も知ってる。
適性があろうがなかろうが、どんなやつでも一定の生産性が確保できる。
それで飯が食えるなら問題ないじゃん。
pythonに貴重な時間を割くことはない。
これからもjavaで行きなよ。
俺はpython使うけどな。

43 :デフォルトの名無しさん:2007/02/27(火) 17:42:40
> Pythonでは親クラスを直すことを問題視しない

詳しく

44 :デフォルトの名無しさん:2007/02/27(火) 18:44:08
いやー隔離して正解だったなw

>>> Pythonは、あちこちその場その場でクラスを直しながら作るのが流儀だ
とか言っちゃってる子は、例のコード書いてね


45 :デフォルトの名無しさん:2007/02/27(火) 19:15:28
おもしろスレあげw

俺、最近Pythonの勉強しはじめたばっかりなんだよね
こーゆースレあると退屈しなくてすむw

46 :デフォルトの名無しさん:2007/02/27(火) 19:15:47
例のコードって何? 「コード例」ってこと?

47 :デフォルトの名無しさん:2007/02/27(火) 19:25:30
>>例のコード
すまん。日本語が出来ない日本人ですまん
>Pythonでは親クラスを直すことを問題視しない
が、実践されてるpythonのコードの例を見させてほしい

48 :デフォルトの名無しさん:2007/02/27(火) 19:29:45
Pythonでデザパタ実装するなら
コードの参考はJavaよりSmalltalkの方が幸せになれそうな気がしなくもない。

Sqeakをクラスブラウザで奥深く探っていけば
いくつかパターンが見つかるんじゃないかと。
根気はいりそうだが

49 :デフォルトの名無しさん:2007/02/27(火) 20:44:17
>>37
> Pythonのデザパタを作ってみたいんだけど…、
> といったところ、そんなものは不要。
> Pythonは、あちこちその場その場でクラスを直しながら作るのが
> 流儀だ。Javaのやり方を持ち込むなと、罵倒されたわけだ。

あっちのスレで「そんなものは不要」と言っているレスの番号を示してくれない?
「Pythonは、あちこちその場その場でクラスを直しながら作るのが流儀だ」と
言っているレスの番号もお願い。

誰もそんなことは言っていないような・・・。

マジレスすると、Python でデザパタってのは割と古いテーマです。
ググれば山ほど議論やコード例が出てくるはず(日本語のページは少ないかも)。

50 :デフォルトの名無しさん:2007/02/27(火) 21:22:27
>>37はもう飽きてJavaに帰っちゃったかもよ
そのまま一生Javaに閉じこもっててくれればいいんだが

51 :デフォルトの名無しさん:2007/02/28(水) 13:54:51
簡易Singleton
>>>class S:
...  def __call__( self ):
...    return self
...
>>>S=S()
>>>S()==S()
True

弱点は普通に__call__を使いたいとき困ること...

16 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)