探検


ウェブプログラミングで使えるデザインパターン

1nobodyさん
垢版 |
03/11/22 06:56ID:Lh+gL3bz
ゲッチューポン
03/11/22 11:16ID:???
結構良スレっぽいスレタイなのに、>>1がクソで萎え
03/11/22 22:25ID:???
こんなスレはシングルトンであって欲しいものだ。
4nobodyさん
垢版 |
03/11/22 22:44ID:LH4aw5t2
とにかくリクエストとレスポンスが一組になる
1パターンリクエストに対し数パターンのレスポンスがあって、他パターンのリクエストと共通だったりする
03/11/22 23:15ID:???
>>4
で?
03/11/23 19:42ID:???
サーブレットは知らんがCGI、PHPあたりだとだいたい

フォームデータ処理
if
 エラー表示1
else if
 エラー表示2
・・・
else if
 処理1
 フェーズ1表示
else if
 処理2
 フェーズ2表示
・・・・
って感じになるな
03/11/23 21:40ID:???
>>6
えと、>>1はGoF辺りのデザパタを聞きたいんではないかと。

後、それダサい。
03/11/23 22:36ID:???
>>7
だって>>6=>>1だもん
じゃあカコイイやつカモン
03/11/24 15:47ID:???
ここでいうデザインパターンってなんですか?
10nobodyさん
垢版 |
03/11/24 23:53ID:6o1aVvpy
GoFに限定しないオブジェクト指向にも限定しない
寧ろウェブプログラミングのためのパターン
03/11/25 17:04ID:???
GOFのどれがWEBプログラミングに使われるんですか?
12nobodyさん
垢版 |
03/11/26 12:58ID:e6YvtpHr
PHP関連でそういった事を解説してるサイトなかった?>WEBPrograming/DesignPattern
Stateパターンでログイン・ユーザの認証状態を管理する。etc

コーディングに特化しない話題でもいいなら、
WEB関連&&デザインパターンという事で、こんなサイトも。
http://www.designpattern.lu.unisi.ch/index.htm
03/11/26 13:08ID:???
まずはPerl5やPHPにGoFを翻訳することからはじめるか
Perl5やPHPって継承やインターフェース使えたっけ?
03/11/26 16:20ID:???
http://www.pat.hi-ho.ne.jp/dimension/sample/sample_class_list.shtml
のサイトでもPHPでデザパタしてる。
プログラム板にも初心者向けのデザパタスレがあるから、
デザインパターンって何?って人はそちらも合わせて見るといいかと。
15nobodyさん
垢版 |
03/11/27 00:07ID:0zBWj9/p
>>13
GOFの実装例なら、すでに幾つかありますね。
http://www.perldesignpatterns.com/

Perl5 や PHP4 にはインターフェースのための構文は用意されていないので、
(標準では)Javaみたいにインターフェースで定義したメソッドの実装を強制する事は出来ません。
多くのサンプルでは、インターフェース代わりに空メソッドを定義しているだけか、
実行時にメソッドが実装されていなければ終了する。と、いったものが殆んどの様です。

インターフェースを継承したクラスがそのメソッドを実装しているか確認したいのであれば。
perlについては、CPANにコンパイル時にインターフェースをチェックするモジュールがあります。
PHPでは、PHP5からインターフェースが導入されています。

03/11/27 00:41ID:???
ごめん、インターフェースって何?継承とは違うのかい?
03/11/27 02:07ID:???
インターフェースは知らんけど継承はわかるのか?
なんじゃそりゃ
03/11/27 02:15ID:???
ウェブプログラミングじゃあんまGoF通用しないんじゃね?
Perl PHP Rubyじゃインターフェース無いし、GUIもHTML吐いて作るわけだし、
インスタンスを次のセッションで使うのもしんどいじゃん
03/11/27 06:30ID:???
>>18
>Perl PHP Rubyじゃインターフェース無いし
プロトタイプベースだからいらんでしょ。アホか。

>GUIもHTML吐いて作るわけだし、
むしろその辺のGUI部品より融通が利くわけだが。


後、J2EEとかASP.NETはWebプログラミングに入らないんですか?
完全無料主義者のあなたの中では。
03/11/27 07:30ID:???
オブジェクト指向が必要なほど大規模になることもなく
やっぱり>>6みたいなものになっちまうのか

>>6を汎用的に書ければいいんだけど
21nobodyさん
垢版 |
03/11/27 07:31ID:0zBWj9/p
>>18
オブジェクトの永続化について調べてみるといいかも。
PHPなんかでは、普通にセッションにオブジェクトを格納出来るよ。

22nobodyさん
垢版 |
03/11/27 08:17ID:0zBWj9/p
>>20
一連の処理をひとつのアプリケーションとし、
各処理をそのアプリケーションの状態とみなすと、
Stateパターンを適応できますね。perlのCGI::Application みたいに。

勿論、非オブジェクト指向でも同様の処理は可能です。
ハッシュ等にキーと処理へのポインタを登録し、
与えられたキーの処理を呼び出すといった方法で、冗長な分岐から解放されます。


ところで、ウェブプログラミングで*使える*(eq 有用な?)デザインパターンって、
例えばどんなの?
23nobodyさん
垢版 |
03/11/27 08:46ID:8RwaY1jw
Webプログラミングの場合、GUIより、モデルやコントローラ周りでの
プログラミングでデザインパターンを多用するケースが多い気が。

結城 浩著書の本は役立ってます。

24nobodyさん
垢版 |
03/11/27 11:23ID:lzQjXivq
>>19がなんでそんな必死になるのかわからんし
全然反論になってない
03/11/27 12:31ID:???
ごめん、クラスの組み合わせがデザインパターン?
つかデザインパターンを易しく説明きぼんぬ。まじで。
03/11/27 13:01ID:???
GOFならぐぐればいくらでもでてくる
03/11/27 13:58ID:???
Web Service なシステムを作る上でのデザインパターンなら考えられるかも
ConcreteStrategy を一個の CGI として実装して… うーいまいちメリットないな
03/11/27 14:15ID:???
フォームデータ処理
if
 obj=new Hoge(query);
else if
 obj=new Piyo(query);
else if
 obj=new Foo(query);
else if
 obj=new Bar(query);
・・・・

obj.proc

>>6とあんま変わらんな
03/11/27 16:50ID:???
MVCさいこー。
いや、本気で。
03/11/27 17:03ID:???
テンプレート使えばモデルとビューは分離できるな
31nobodyさん
垢版 |
03/11/27 22:02ID:0zBWj9/p
>>25
オブジェクト指向にクラスが必須ではないのと同じくらい、
デザインパターンにオブジェクト指向が必須という訳ではないと思う。(私見)
オブジェクト指向以外でも応用することが出来ます。

>>28
>>22 の方法、伝わらなかったかな。サンプルこんな感じです。
use CGI;
my $query = new CGI;
my $app = new App(
func1 => \$func1,
func2 => \&func2,
func3 => \&func3
);
$app->exec($query->param('mode'), $query);
sub func1 { my ($query) = @_; print "func1\n"; }
sub func2 { my ($query) = @_; print "func2\n"; }
sub func3 { my ($query) = @_; print "func3\n"; }

package App;
sub new {
my ($class, %menu) = @_;
bless({menu => \%menu}, $class);
}
sub exec {
my ($self, $key, @args) = @_;
if (ref $self->{menu}->{$ket} eq 'CODE') {
&{$self->{menu}->{$key}}(@args);
}
}
32nobodyさん
垢版 |
03/11/27 22:15ID:0zBWj9/p
>> 23
アプリケーションサーバや、フレームワーク内でなら使われてる例は多いよね。GOFに限らず。

うーん、OOP/GOF な話題がメインなのかな、ここ?
WEBパターンとかの話題はスレor板違い?
http://www.c2.com/cgi/wiki?WebsitePatterns
03/11/27 22:29ID:???
>>31
非オブジェクト指向言語でオブジェクト指向ごっこしたら大体は破綻するけどね。

言語もパターンも使いよう。
あんたの実力はソースコードレビューではなく客先試験で発揮して下さいよって感じになりかねない。
03/11/27 23:54ID:???
25です。
>>31
ますます分からなくなりました。
これって特殊な例じゃない?
レスを投稿する


ニューススポーツなんでも実況