ウェブプログラミングで使えるデザインパターン (170レス)
ウェブプログラミングで使えるデザインパターン http://medaka.5ch.net/test/read.cgi/php/1069451782/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
105: nobodyさん [] 04/01/03 11:48 ID:2WhaiS3p Bridgeパターン http://www.lyricfathom.com/pukiwiki/pukiwiki.php?Web%A5%A2%A5%D7%A5%EA%A5%B1%A1%BC%A5%B7%A5%E7%A5%F3%A4%C7%A4%CEBridge%A5%D1%A5%BF%A1%BC%A5%F3 http://medaka.5ch.net/test/read.cgi/php/1069451782/105
106: nobodyさん [] 04/01/03 14:16 ID:/y0BIE8s PHPのパターンならここが有名でしょうね。 http://www.phppatterns.com/ http://medaka.5ch.net/test/read.cgi/php/1069451782/106
107: nobodyさん [sage] 04/01/05 19:45 ID:??? PHP、言語として機能が足りてないからデザパタに向いてないよ。 典型的な例が Singleton。 http://medaka.5ch.net/test/read.cgi/php/1069451782/107
108: nobodyさん [sage] 04/01/05 20:23 ID:??? $a = NULL; function GetSameObject(){ global $a; if($a == NULL){ $a = new SameObject(); } return $a; } http://medaka.5ch.net/test/read.cgi/php/1069451782/108
109: nobodyさん [sage] 04/01/07 09:41 ID:??? >>108 だから、そういう小汚いコード書かなきゃイカンから言語として機能が足りてないんだろ。 PHP5 だと static あるから Singleton は書けるようになるが…それでもどうかと思う。 http://medaka.5ch.net/test/read.cgi/php/1069451782/109
110: nobodyさん [sage] 04/01/07 18:00 ID:??? >>109 PEAR パッケージでよく使われてますが、 PHP4 でも普通に書けますよ。 class Hoge { function &singleton() { static $instance; if (!isset($instance)) { $instance = new Hoge; // $instance = HogeHoge::factory; } return $instance; } $instance = &Hoge::singleton(); http://medaka.5ch.net/test/read.cgi/php/1069451782/110
111: 107 [sage] 04/01/08 05:49 ID:??? >>110 >>109 の言う「小汚い」部類じゃないかね、そのコードは。 クラス内唯一のインスタンスなんだから、論理的に言えばクラスが static 変数として持つべきだろう。 > PHP5 だと static あるから Singleton は書けるようになるが と言っている時点で >>109 の言いたい事は自明だと思うんだが…。あんた大丈夫か? PEAR のコードや Do You PHP にあるデザインパターンのサンプルでも良く見掛けるが、 PHP4 自体の機能が足りずに他の言語ではしなくていいような事をしている点がいくつもある。 少くとも俺は PHP はオススメしない。 http://medaka.5ch.net/test/read.cgi/php/1069451782/111
112: nobodyさん [sage] 04/01/08 06:38 ID:??? >>111 デザパタの本の「はじめに」とか「概要」を読み直すことを推奨。 http://medaka.5ch.net/test/read.cgi/php/1069451782/112
113: nobodyさん [sage] 04/01/08 06:44 ID:??? >>111 てことはCはダメ言語でerronoなんて使ってるunixは目も当てられないって事になるのだろうか。 そんなことだからいつまでもプログラマ + Web特化なんだな。 http://medaka.5ch.net/test/read.cgi/php/1069451782/113
114: nobodyさん [sage] 04/01/08 06:47 ID:??? まぁ C はダメ言語だろうな。 http://medaka.5ch.net/test/read.cgi/php/1069451782/114
115: nobodyさん [sage] 04/01/08 08:32 ID:??? >>110 クラス・メソッドを使わずnewすると普通に別のインスタンス作成出来るよね? http://medaka.5ch.net/test/read.cgi/php/1069451782/115
116: 110 [sage] 04/01/08 09:17 ID:??? >>115 できますよ。 言語特性や制限はありますが PHP や Perl では Private メソッドも含めてそういう ものは書く側が慣習的に守るというだけのことです。 111 さんがいうようなことも 当然ありますけど、だからといってその言語の利点があるわけですから使い分けるの が良いというだけの話でしょう。 http://medaka.5ch.net/test/read.cgi/php/1069451782/116
117: nobodyさん [sage] 04/01/08 14:14 ID:??? そうだなあ、singleton という、 コンストラクタの実装とクラス変数に大きく依存するパターンは、 PHP の言語仕様とインピーダンスミスマッチが大きい、ということは言えそうに思う。 ただ、GoFパターン全部がそういうわけではなく、 むしろ singleton が例外的だとも言える。 つか、そもそも singleton ってウェブプログラミングで使う? まあ、singleton 以外のパターンも今のところウェブプログラミングでの使い道が あまり見つかってないようではあるが。 しかし、ぱっとすぐ思いつかないが、 singleton 以外でも PHP が向かないパターンはありそうな感じではある。 >>107 への宿題として、 singleton 以外で PHP が向いていないと思われるパターンを提出せよ。 「ウェブプログラミングで使える」というスレの趣旨を満たすとモアベターだが、 さすがにそこまでは難しいか。 http://medaka.5ch.net/test/read.cgi/php/1069451782/117
118: nobodyさん [sage] 04/01/08 20:51 ID:??? >>116 一応、慣習や暗黙の了解みたいなのは理解しています。が、 言語としての機能が足りていない部分という論点に関して言えば、コードの奇麗汚いではなくて singletonパターンの条件を完全に満たす事が出来ない点じゃないかな。と思った。 >>117 例:データベースへ接続するクラスをSingletonにする。 ウェブプログラミングでもアプリケーションサーバ等フレームワークにはよく使われてるよ。 http://medaka.5ch.net/test/read.cgi/php/1069451782/118
119: 107 [sage] 04/01/08 23:07 ID:??? >>117 宿題も糞も、PHP のデザインパターンのサンプルコード読めよ。 その辺の問題点も全部書いてるわ。 http://medaka.5ch.net/test/read.cgi/php/1069451782/119
120: nobodyさん [sage] 04/01/08 23:24 ID:??? まぁ、極論すればグローバル変数をラップしただけという代物だ。 気を付けてグローバル変数を使用するのと早々大差はない。 http://medaka.5ch.net/test/read.cgi/php/1069451782/120
121: nobodyさん [age] 04/01/09 07:36 ID:??? ,イ │ // |:! //,. -/r‐- 、| ! /,/ ./ | _」 ト、 /.\`/ |二...-┘ ヽ . i ,.>、;/ー- 、 l ! ∠.._;'____\ | ,!イ く二>,.、 <二>`\.、ヽ. /'´レ--‐'ノ. `ー---- 、 |\ ヽ、 \ `l (!" Jfヽ! `''-;ゝ 大佐ではない `‐、jヽ ヾニニ> ゙イ" }_,,. ‐''´ `´\ ー / ,ィ_} . |_ `ー ''´ _」' , ー‐-‐‐‐--''.‐''゛,,;,,...: ゛''-、、,;,, ,ィ'゛ ゛゛""' ゛"'''-、 / ヽ / '、 l l . l i. l l :i. ヽ.:.:...:.:: "' . l .:l ヽ.:.::... "''、 . l. .:l ヽ.:..:. `'、 l ::l: ';.:.:..... ヽ l .:l.:.. .:ィ.):.:. l.:.:.: .:.ヽ、 . l .:l..: ''ー.: .:.:l.:.:..:..:: .:i'゛ http://medaka.5ch.net/test/read.cgi/php/1069451782/121
122: nobodyさん [sage] 04/01/09 10:45 ID:??? >>118 フレームワーク内で使われるのはわかるが DBのコネクションプールはそうやってフレームワークが管理してくれるはずだから ユーザがコード書く段階では気にしなくていいぢゃん。 Perl ですら mod_perl + Apache::DBI 使えばいいし。 と思ったが、よくよく考えてみたら、PHP にはコネクションプールが無いのか。 それは確かに問題だな。 http://medaka.5ch.net/test/read.cgi/php/1069451782/122
123: 110 [sage] 04/01/09 11:34 ID:??? >>122 私の知る限りでは Apache::DBI はコネクションプールをしているわけではな くて PHP の持続的接続と同等の機能を提供するはずです。 つまり DSN 毎にコネクションを維持するだけ (さらにプロセス毎に) だと理 解していますが。 さらにコネクションプールは SQL Relay 等で実現できますよ。 http://medaka.5ch.net/test/read.cgi/php/1069451782/123
124: nobodyさん [sage] 05/01/27 00:47:17 ID:??? 一生懸命読んだけど23の中の一個も理解できませんでした どうしればいいでしょうか。 早くオブジェクト脳になりたいんです! http://medaka.5ch.net/test/read.cgi/php/1069451782/124
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 46 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.012s