サーバーサイドWebプログラミングのOOスレです。
・OOP、MVC、デザパタなどのコンセプト的な話題
・OOにまつわる言語比較(言語批判はその言語で開発してる人に失礼にあたることが多いのでなるべく禁止でお願いします)
・保守、再利用、生産性、開発環境などの実践的な話題
・Webサーバ、DBなどの外部との親和性に関する問題
・学習、教育などの方法論
などなど。
前スレ
PHPでオブジェクト指向プログラミング
http://pc8.2ch.net/test/read.cgi/php/1113724557/
Webでオブジェクト指向プログラミング
1nobodyさん
2005/12/02(金) 11:18:17ID:lnZM9OlM2005/12/02(金) 11:41:45ID:???
乙カレーション。
ついでにズザー
ついでにズザー
2005/12/02(金) 11:54:27ID:???
見かけた関連スレ(内容未確認)
PHPとJAVAさぶれっと
http://pc8.2ch.net/test/read.cgi/php/987850713/
オブジェクト指向perl
http://pc8.2ch.net/test/read.cgi/php/1022604696/
ウェブプログラミングで使えるデザインパターン
http://pc8.2ch.net/test/read.cgi/php/1069451782/
【PHP】フレームワークについて語るスレ【総合】
http://pc8.2ch.net/test/read.cgi/php/1123608068/
CGI VS PHP VS JAVA
http://pc8.2ch.net/test/read.cgi/php/1006006800/
Python vs Ruby vs PHP vs Perl
http://pc8.2ch.net/test/read.cgi/php/1124710112/
WEBアプリにもっとも適した言語は何か?
http://pc8.2ch.net/test/read.cgi/php/1130115690/
良質なサイトや書籍など、情報ある人プリーズ
PHPとJAVAさぶれっと
http://pc8.2ch.net/test/read.cgi/php/987850713/
オブジェクト指向perl
http://pc8.2ch.net/test/read.cgi/php/1022604696/
ウェブプログラミングで使えるデザインパターン
http://pc8.2ch.net/test/read.cgi/php/1069451782/
【PHP】フレームワークについて語るスレ【総合】
http://pc8.2ch.net/test/read.cgi/php/1123608068/
CGI VS PHP VS JAVA
http://pc8.2ch.net/test/read.cgi/php/1006006800/
Python vs Ruby vs PHP vs Perl
http://pc8.2ch.net/test/read.cgi/php/1124710112/
WEBアプリにもっとも適した言語は何か?
http://pc8.2ch.net/test/read.cgi/php/1130115690/
良質なサイトや書籍など、情報ある人プリーズ
2005/12/02(金) 12:05:33ID:???
MVC はともかく、デザパタとか入るとメタ議論好きが入ってきそうだなぁ。
適宜ム板、マ板に誘導していかないと。
適宜ム板、マ板に誘導していかないと。
2005/12/02(金) 12:08:49ID:???
そうだね。
とりあえず議論がWebプログラミングに関係なくなった時点でスレ違いってことで。
とりあえず議論がWebプログラミングに関係なくなった時点でスレ違いってことで。
2005/12/02(金) 16:18:39ID:???
前スレのスレタイと比較すると、ぱっとみJAVA関連のスレと
思ってしまう俺は古い人間なのか?
思ってしまう俺は古い人間なのか?
2005/12/02(金) 16:23:36ID:???
ここはSmallTalkスレですよ?
10nobodyさん
2005/12/02(金) 16:36:26ID:??? webページレベルではオブジェクト思考でなくてもまぁ、苦労はしないけど、webシステムになると、データやモジュールをクラス管理しないとやってられない。この板でスレ違いって言う人間こそスレ違い。
11nobodyさん
2005/12/02(金) 16:52:18ID:??? 素人趣味プログラマですが、
綺麗にOOが書けません><
プロの方のソースを拝見させてもらうと感動します><
綺麗にOOが書けません><
プロの方のソースを拝見させてもらうと感動します><
12nobodyさん
2005/12/02(金) 17:33:27ID:???13nobodyさん
2005/12/02(金) 17:40:43ID:???16nobodyさん
2005/12/02(金) 20:04:21ID:4lCzPlwh17nobodyさん
2005/12/02(金) 21:25:10ID:??? JavaScriptでOOって無理があるだろ
派生クラスだとprivateプロパティとして使いたい部分が共有されてしまう。
全部publicならできるのか?
派生クラスだとprivateプロパティとして使いたい部分が共有されてしまう。
全部publicならできるのか?
18nobodyさん
2005/12/03(土) 00:11:04ID:??? <?php
class State{
var $user;
var $pass;
var $host;
var $database;
function State($user,$pass,$host,$database){
$this->user = $user;
$this->pass = $pass;
$this->host = $host;
$this->database = $database;
}
function GetCon(){
$con = mysql_connect($this->host,$this->user,$this->pass);
if($con && mysql_select_db($this->database,$con))
return $con;
else
return NULL;
}
}
class State{
var $user;
var $pass;
var $host;
var $database;
function State($user,$pass,$host,$database){
$this->user = $user;
$this->pass = $pass;
$this->host = $host;
$this->database = $database;
}
function GetCon(){
$con = mysql_connect($this->host,$this->user,$this->pass);
if($con && mysql_select_db($this->database,$con))
return $con;
else
return NULL;
}
}
19nobodyさん
2005/12/03(土) 00:12:07ID:???class TEST{
var $con;
var $sql;
var $data;
function TEST($user,$pass,$host,$database){
$d = new State($user,$pass,$host,$database);
$this->con = $d->GetCon();
}
function MakeSQL(){
$this->sql = "SELECT user,host FROM user ";
}
function RunSQL(){
$rst = mysql_query($this->sql,$this->con);
if($rst)
for($i=0; $col=mysql_fetch_array($rst) ; $i++)
$this->data[$i] = $col;
else
return NULL;
return 1;
}
}
20nobodyさん
2005/12/03(土) 00:12:47ID:??? class MAIN{
function MAIN($user,$pass,$host,$database){
$obj = new TEST($user,$pass,$host,$database);
if($obj->con){
$obj->MakeSQL();
$obj->RunSQL();
$this->ShowData($obj);
}
else
printf("error");
}
function ShowData($obj){
for($i=0;$i<sizeof($obj->data);$i++)
printf("%s,%s<BR>",$obj->data[$i]["user"],$obj->data[$i]["host"]);
}
}
?>
function MAIN($user,$pass,$host,$database){
$obj = new TEST($user,$pass,$host,$database);
if($obj->con){
$obj->MakeSQL();
$obj->RunSQL();
$this->ShowData($obj);
}
else
printf("error");
}
function ShowData($obj){
for($i=0;$i<sizeof($obj->data);$i++)
printf("%s,%s<BR>",$obj->data[$i]["user"],$obj->data[$i]["host"]);
}
}
?>
21nobodyさん
2005/12/03(土) 00:14:16ID:??? <HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<META http-equiv="Content-Style-Type" content="text/css">
</HEAD>
<BODY>
<?php
$d = new MAIN(MySQLユーザー名,MySQLパスワード,"localhost","mysql");
?>
</BODY>
</HTML>
>11
PHPでやるとこんな感じ?
ひねりやセキュリティーは無視したけど
概念だけならこんな感じで十分だと思う
ま、アクセス権の関係で動かないかもね
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<META http-equiv="Content-Style-Type" content="text/css">
</HEAD>
<BODY>
<?php
$d = new MAIN(MySQLユーザー名,MySQLパスワード,"localhost","mysql");
?>
</BODY>
</HTML>
>11
PHPでやるとこんな感じ?
ひねりやセキュリティーは無視したけど
概念だけならこんな感じで十分だと思う
ま、アクセス権の関係で動かないかもね
22nobodyさん
2005/12/03(土) 00:24:54ID:??? static $con;
if ( $con === null ) {
とか、やりたくならんか?
if ( $con === null ) {
とか、やりたくならんか?
23nobodyさん
2005/12/03(土) 02:10:17ID:???24nobodyさん
2005/12/03(土) 11:33:28ID:??? どっちかっていうと
static $instance = false;
if ($instance === false) {
$inctance = new . . .
じゃないのphp4ならだけど
static $instance = false;
if ($instance === false) {
$inctance = new . . .
じゃないのphp4ならだけど
26nobodyさん
2005/12/03(土) 11:47:30ID:??? VOがDB持ってるのって概念的に変じゃね?
28nobodyさん
2005/12/03(土) 13:42:25ID:??? JSって名前の隠蔽が関数かブロックのローカルスコープでしかできないからOO的な隠蔽は無理だよね。
あの言語は興味としては面白いけど、OOを生かした開発向けじゃないと思うけど。
つーかサーバーサイドでJSやってる奴いるの?
あの言語は興味としては面白いけど、OOを生かした開発向けじゃないと思うけど。
つーかサーバーサイドでJSやってる奴いるの?
29nobodyさん
2005/12/03(土) 16:05:11ID:??? シラネ。
隠蔽やポリモーフィズムは他言語と変わらん。
隠蔽やポリモーフィズムは他言語と変わらん。
30nobodyさん
2005/12/04(日) 02:35:54ID:??? 出た!ポリモーフィズム!
33nobodyさん
2005/12/05(月) 10:20:07ID:??? このスレ、ネタがないね。
とりあえず思ったことを書いてみるテスト。
MVCのM(MVCフレームワークに寄りかからない場合でもビジネスロジックをつっこむ部分)の設計について。
Webの場合は細かいエンティティをModelにしてしまうとかえって見通しが悪くなるから、割と大雑把なくくりでModelにした方が設計しやすい+実装しやすい+パフォーマンス的にも良いんだよね。
でもそうすると、関数でもいいものがメソッドになっただけで、ベタ書きロジックのラッパに過ぎないような実質シングルトンがいくつもできたりして。
それってオブジェクト指向という考えから反対方向に行ってしまってる。
形だけがオブジェクト指向風になってるって感じ。
もうちょっと勉強してくるわ。
とりあえず思ったことを書いてみるテスト。
MVCのM(MVCフレームワークに寄りかからない場合でもビジネスロジックをつっこむ部分)の設計について。
Webの場合は細かいエンティティをModelにしてしまうとかえって見通しが悪くなるから、割と大雑把なくくりでModelにした方が設計しやすい+実装しやすい+パフォーマンス的にも良いんだよね。
でもそうすると、関数でもいいものがメソッドになっただけで、ベタ書きロジックのラッパに過ぎないような実質シングルトンがいくつもできたりして。
それってオブジェクト指向という考えから反対方向に行ってしまってる。
形だけがオブジェクト指向風になってるって感じ。
もうちょっと勉強してくるわ。
34nobodyさん
2005/12/05(月) 11:12:40ID:??? もうちょっと具体的に頼む
35nobodyさん
2005/12/05(月) 18:30:47ID:??? 単に設計がいまいちなだけじゃね?
ちゃんと考えて組めば、Mだけ客によって取り替えてウマーに出来ると思う。
まあ外向けとかで見栄えも気にするならMに加えてVも弄るから、分けずにMV+Cでもいいじゃんって発想?
ちゃんと考えて組めば、Mだけ客によって取り替えてウマーに出来ると思う。
まあ外向けとかで見栄えも気にするならMに加えてVも弄るから、分けずにMV+Cでもいいじゃんって発想?
36nobodyさん
2005/12/11(日) 16:50:09ID:TPyd81O7 PHP5でオブジェクト指向プログラミングって、
仕事ではまだほとんどやってない?
仕事ではまだほとんどやってない?
37nobodyさん
2005/12/12(月) 00:20:15ID:??? PHP 5 がまだなのかオブジェクト指向がまだなのか
どっちを聞きたいんだろ
どっちを聞きたいんだろ
38nobodyさん
2005/12/12(月) 05:07:04ID:??? PHP5からオブジェクト指向とったら何も残らないじゃん。
39nobodyさん
2005/12/12(月) 06:24:55ID:??? PHP5の仕様を学びながら同時にオブジェクト指向も学べるっていう
素敵本ってないですかねぇ?
素敵本ってないですかねぇ?
41nobodyさん
2005/12/12(月) 08:01:46ID:??? まぁいいサンプルがあればいいんじゃないの?
おれは知らないけど
おれは知らないけど
42nobodyさん
2005/12/12(月) 08:25:28ID:2/Uq4nev PHP5で__CLASS__ってやるとクラス名を取得できるけど、staticメソッド内で
abstract class Hoge { static public function method() { echo "Fuga"; } }
class Fuga extends Hoge {}
Fuga::method();
これで"Fuga"って表示させる、みたいな。
abstract class Hoge { static public function method() { echo "Fuga"; } }
class Fuga extends Hoge {}
Fuga::method();
これで"Fuga"って表示させる、みたいな。
4342
2005/12/12(月) 08:28:10ID:2/Uq4nev ごめん、日本語が中途半端だった。
× これで"Fuga"って表示させる、みたいな。
○ これで"Fuga"って表示させるにはどうしたらいいですか?
× これで"Fuga"って表示させる、みたいな。
○ これで"Fuga"って表示させるにはどうしたらいいですか?
44nobodyさん
2005/12/12(月) 08:33:41ID:??? お前が質問したいのはそういうことじゃないだろ
4542
2005/12/12(月) 08:41:37ID:??? あ、飽くまでecho "Fuga"っていうのを使わずに__CLASS__とかgetなんちゃらname()とかそういう類で"Fuga"を取得したいという意味です。
get_class($this)のstatic版みたいなのはないですかね?
get_class($this)のstatic版みたいなのはないですかね?
46nobodyさん
2005/12/12(月) 09:03:12ID:??? ムリ
俺もこの仕様はなんとかならんものかと思ってる
但しその例だと
Fuga::method() →Fugaにない→親クラスのメソッドが呼ばれる
オーバーライドされていないため実際にはHuga::method()がコール
されるわけで親クラスの名前(Hoge)が表示されるのは正しい動作だと思う
俺もこの仕様はなんとかならんものかと思ってる
但しその例だと
Fuga::method() →Fugaにない→親クラスのメソッドが呼ばれる
オーバーライドされていないため実際にはHuga::method()がコール
されるわけで親クラスの名前(Hoge)が表示されるのは正しい動作だと思う
47nobodyさん
2005/12/12(月) 09:06:42ID:??? Hugaって何だHogeだよHoge
48nobodyさん
2005/12/12(月) 09:13:38ID:??? staticはクラスメソッド的なニュアンスだしな
下で隠蔽しなきゃそのまま晒される
下で隠蔽しなきゃそのまま晒される
4942
2005/12/12(月) 09:48:14ID:??? みなさんどうもです。
無理ですかねぇ。ちょっと頑張ってみたけどやっぱ無理でした。
abstract class Hoge {
static public function method() { echo self::getMyName(); }
abstract static protected function getMyName();
}
class Fuga extends Hoge {
static protected function getMyName() { return __CLASS__; }
}
Fuga::method();
staticメソッドってオーバーライドできないんですね・・・。
無理ですかねぇ。ちょっと頑張ってみたけどやっぱ無理でした。
abstract class Hoge {
static public function method() { echo self::getMyName(); }
abstract static protected function getMyName();
}
class Fuga extends Hoge {
static protected function getMyName() { return __CLASS__; }
}
Fuga::method();
staticメソッドってオーバーライドできないんですね・・・。
50nobodyさん
2005/12/12(月) 10:04:02ID:??? self::でサブクラスのメソッドが呼ばれるわけなかろ。
51nobodyさん
2005/12/12(月) 10:06:47ID:??? OO的には、staticメソッドは各クラスに固有のものだから
オーバーライドという概念自体が存在しない
オーバーライドという概念自体が存在しない
5342
2005/12/12(月) 10:55:39ID:??? >>50 >>51
納得。そうなんですか。継承はされるのに・・・、と考えるとむつかしいですね。
まあとりあえずできました!!
abstract class Hoge {
static public function method() {
$bt = debug_backtrace();
for ($i = 1; $i < count($bt); $i ++)
if (empty($bt[$i]["type"]) or $bt[$i]["type"] != "::" or $bt[$i]["function"] != __FUNCTION__)
break;
echo $bt[$i - 1]["class"];
}
}
class Fuga extends Hoge {
static public function method() {
parent::method();
}
}
Fuga::method();
超微妙・・・。デバッグでもなんでもないのにdebug_backtraceとか超微妙。
納得。そうなんですか。継承はされるのに・・・、と考えるとむつかしいですね。
まあとりあえずできました!!
abstract class Hoge {
static public function method() {
$bt = debug_backtrace();
for ($i = 1; $i < count($bt); $i ++)
if (empty($bt[$i]["type"]) or $bt[$i]["type"] != "::" or $bt[$i]["function"] != __FUNCTION__)
break;
echo $bt[$i - 1]["class"];
}
}
class Fuga extends Hoge {
static public function method() {
parent::method();
}
}
Fuga::method();
超微妙・・・。デバッグでもなんでもないのにdebug_backtraceとか超微妙。
5542
2005/12/13(火) 13:04:20ID:??? >>54
返事が遅れて申し訳ない。・・・といってもその間にレス来てないけどw
実際にはデバッグの目的でログを取るのに、staticメソッド内で呼び出したサブクラス名を__CLASS__みたいに手軽に取得できないかを探し始めたのがきっかけでした。
その意味ではdebug_backtraceを発見したのでそれで問題解決なんだけど、元の質問をしたときには確か似たような問題を見た記憶があって、もうちょっと一般的な問題のように扱えるかも・・・とでしゃばってみた限りですorz
まあ時間的に少し余裕があったし、今後似たような状況(例えば可変クラスとか)も起こらないとは言えないってこともあって、色々考案してみました。
以下は一般的にはこうするのが(ベストとは言えないまでも)一番マシじゃないかなぁ〜という、ちょっとした提案
abstract class Hoge { static public function method($name = __CLASS__) { echo $name; } }
class Fuga extends Hoge { static public function method($name = __CLASS__) { parent::method($name); } }
Hoge::method();
Fuga::method();
サブクラスにメソッドの実装を強制できない点が痛いけど>>53よりマシかなって程度で。
まだマニュアルを引きつつ勉強中な身なんで、つっこみとかあったらよろしくです。
返事が遅れて申し訳ない。・・・といってもその間にレス来てないけどw
実際にはデバッグの目的でログを取るのに、staticメソッド内で呼び出したサブクラス名を__CLASS__みたいに手軽に取得できないかを探し始めたのがきっかけでした。
その意味ではdebug_backtraceを発見したのでそれで問題解決なんだけど、元の質問をしたときには確か似たような問題を見た記憶があって、もうちょっと一般的な問題のように扱えるかも・・・とでしゃばってみた限りですorz
まあ時間的に少し余裕があったし、今後似たような状況(例えば可変クラスとか)も起こらないとは言えないってこともあって、色々考案してみました。
以下は一般的にはこうするのが(ベストとは言えないまでも)一番マシじゃないかなぁ〜という、ちょっとした提案
abstract class Hoge { static public function method($name = __CLASS__) { echo $name; } }
class Fuga extends Hoge { static public function method($name = __CLASS__) { parent::method($name); } }
Hoge::method();
Fuga::method();
サブクラスにメソッドの実装を強制できない点が痛いけど>>53よりマシかなって程度で。
まだマニュアルを引きつつ勉強中な身なんで、つっこみとかあったらよろしくです。
56nobodyさん
2005/12/13(火) 23:32:56ID:??? 強制したきゃしろよ
57nobodyさん
2005/12/16(金) 17:53:18ID:CZKjM08D Movable Typeの11行目の、
use MT::Bootstrap App => 'MT::App::CMS';
って、どういう意味ですか?
分かるエロくない人、どうかお教えください。
use MT::Bootstrap App => 'MT::App::CMS';
って、どういう意味ですか?
分かるエロくない人、どうかお教えください。
58nobodyさん
2005/12/16(金) 17:54:24ID:CZKjM08D すみません、MT 3.2(日本語版)のmt.cgiの話です。
あと、勝手にMovable Typeがオブジェクト指向と判断してます。
あと、勝手にMovable Typeがオブジェクト指向と判断してます。
60nobodyさん
2005/12/21(水) 21:11:28ID:??? Javaライクな(クラスの)パッケージ管理はPHPではでけへんの?
__autoload() を使おうとするとどうしても一つのフォルダに
クラス定義ファイルを全部ぶち込むことになるんだけど
__autoload() を使おうとするとどうしても一つのフォルダに
クラス定義ファイルを全部ぶち込むことになるんだけど
61nobodyさん
2005/12/21(水) 22:45:40ID:??? いけたっ
うんこぷー
うんこぷー
62nobodyさん
2005/12/22(木) 05:39:54ID:??? >>60
__autoloadの中を頑張ってつくればある意味Javaのパッケージより柔軟に色々できると思う。
今即興で考えてみたけどこんなのどう?
function __autoload($class, $newdir = "") {
static $dirs = array();
if ($newdir) $dirs[] = $newdir;
if ($class) foreach ($dirs as $dir) {
$file = "$dir/$class.class.php";
if (file_exists($file)) { require_once $file; return; }
}
}
function add_import_dir($dir) {
__autoload("", $dir);
}
なんか書いてて虚しくなってきたよ・・・
__autoloadの中を頑張ってつくればある意味Javaのパッケージより柔軟に色々できると思う。
今即興で考えてみたけどこんなのどう?
function __autoload($class, $newdir = "") {
static $dirs = array();
if ($newdir) $dirs[] = $newdir;
if ($class) foreach ($dirs as $dir) {
$file = "$dir/$class.class.php";
if (file_exists($file)) { require_once $file; return; }
}
}
function add_import_dir($dir) {
__autoload("", $dir);
}
なんか書いてて虚しくなってきたよ・・・
63nobodyさん
2005/12/22(木) 15:26:55ID:ORKD8JMR 自クラス内のプロパティーにも
セッターゲッター介してアクセスする?
あるいは自分の中のことだから
直アクセスする?
Dotch?
セッターゲッター介してアクセスする?
あるいは自分の中のことだから
直アクセスする?
Dotch?
64nobodyさん
2005/12/22(木) 16:04:35ID:??? >>63
自分のクラス内なんだから直アクセスでしょ。
クラス内でもセッタゲッタしたいってことは、そのプロパティによっぽど整合性が必要なんだろうから、場合によっては必要な部分だけabstractなクラスとして抽出して問題のプロパティをprivateにする。
ってそれWebプログラミングとどういう関係があるの?
自分のクラス内なんだから直アクセスでしょ。
クラス内でもセッタゲッタしたいってことは、そのプロパティによっぽど整合性が必要なんだろうから、場合によっては必要な部分だけabstractなクラスとして抽出して問題のプロパティをprivateにする。
ってそれWebプログラミングとどういう関係があるの?
65nobodyさん
2005/12/22(木) 16:56:29ID:??? 宗教論争させたいだけでしょ
66nobodyさん
2005/12/22(木) 17:02:57ID:??? なんか仕込みがあるならともかく
別段論争になるようなことじゃないと思うけど
別段論争になるようなことじゃないと思うけど
68nobodyさん
2005/12/22(木) 18:58:37ID:??? 大域変数にするか問題と同じだな。
70nobodyさん
2005/12/22(木) 22:31:30ID:??? Ruby on Railsとかいうのがお目見えしたことだし
スクリプト系はMVC的に糞ってなことにはもうならないな
スクリプト系はMVC的に糞ってなことにはもうならないな
71nobodyさん
2005/12/22(木) 23:00:25ID:??? パッシブは別に糞じゃないだろ
73nobodyさん
2005/12/23(金) 04:52:29ID:??? PHPじゃそうかもな。rubyやperlはもうコレで決まりだと思う。
74nobodyさん
2005/12/23(金) 05:24:31ID:??? いやRuby自体がWebプログラミング方面でそれほど伸びないと思う。
Rubyの方がPHPより先に世の中に知れ渡ってたらRubyの圧勝だったかもしれないが、今更PHPと比較して生産性高いとも思えないし(飽くまでWeb方面では)。
Rubyの方がPHPより先に世の中に知れ渡ってたらRubyの圧勝だったかもしれないが、今更PHPと比較して生産性高いとも思えないし(飽くまでWeb方面では)。
75nobodyさん
2005/12/23(金) 06:47:01ID:??? そこで、pythonですよ!
76nobodyさん
2005/12/23(金) 10:17:08ID:??? Π損はメタクラス以外見るべきところが無い希ガス
77nobodyさん
2005/12/23(金) 12:51:21ID:??? rubyは構文が特殊すぎるし、まんまオブジェクト指向だから、phpのような流行り方をすることはそもそもありえなかったと思う。
unixハッカーな人たちにはperlやrubyが今後も支持されていくでしょう。phpは違う層の人たち向け。
unixハッカーな人たちにはperlやrubyが今後も支持されていくでしょう。phpは違う層の人たち向け。
78nobodyさん
2005/12/23(金) 13:53:17ID:??? ちょwww
unixハッカーってなんだwww
そりゃC使いry
unixハッカーってなんだwww
そりゃC使いry
79nobodyさん
2005/12/23(金) 14:07:50ID:??? cは別物。phpはもっと別物だけど。
80nobodyさん
2005/12/23(金) 14:15:32ID:??? WebでOOするときってどんなクラスつくるの?
MVC以外で。
MVC以外で。
81nobodyさん
2005/12/23(金) 18:01:01ID:??? オブジェクト指向言語は、OOがphp使うような素人の馬鹿避けになってる所は有るね。
phpの生産性って、素人を安い人件費で大量に使えるってだけだからねえ。
RoRは馬鹿には理解出来ないから、流行る事は無いだろう。流行るためには馬鹿でも理解出来る事が必要だし。
phpの生産性って、素人を安い人件費で大量に使えるってだけだからねえ。
RoRは馬鹿には理解出来ないから、流行る事は無いだろう。流行るためには馬鹿でも理解出来る事が必要だし。
82nobodyさん
2005/12/23(金) 18:18:43ID:??? RoRのレベルが高いと思ってるおばかさんが一人いるぞw
Lisp信者にもその考えの奴多いんだよなぁ。
Lisp信者にもその考えの奴多いんだよなぁ。
83nobodyさん
2005/12/24(土) 02:04:43ID:??? ざっくり言ってphpユーザはレベルが低い
84nobodyさん
2005/12/24(土) 13:15:52ID:??? ユーザのレベルなんて人それぞれだし、スレ違いでは?
85nobodyさん
2005/12/24(土) 20:22:24ID:??? phpしか書けない香具師に、LispやRoRは無理。
86nobodyさん
2005/12/24(土) 21:25:57ID:??? この言いっぱなしの駄レス連発してるやつって一人でやってんの?
87nobodyさん
2005/12/25(日) 02:32:29ID:??? はいはいわろすわろす
って言ってほしいんだろきっと。
LispはまだしもRoRを難しいとか言う奴初めて見た。
PHPしかできない奴のレベルが低いってのはまあ当たり前の話だが。
って言ってほしいんだろきっと。
LispはまだしもRoRを難しいとか言う奴初めて見た。
PHPしかできない奴のレベルが低いってのはまあ当たり前の話だが。
88nobodyさん
2005/12/27(火) 16:43:08ID:Zix1qzzJ89nobodyさん
2005/12/27(火) 17:59:00ID:Zix1qzzJ あ、これはただ単にハッシュを渡しているだけなのですか?^^;
90nobodyさん
2005/12/27(火) 22:04:42ID:??? スレ違いだって
91nobodyさん
2005/12/28(水) 02:23:24ID:FTSvjaED92nobodyさん
2005/12/28(水) 09:12:28ID:??? ここで解説はイラネ。
配布スクリプトの読めない部分を解説しちゃる
ttp://pc8.2ch.net/test/read.cgi/php/1094842959/l50
配布スクリプトの読めない部分を解説しちゃる
ttp://pc8.2ch.net/test/read.cgi/php/1094842959/l50
93nobodyさん
2006/01/01(日) 02:30:26ID:??? >>85
なんというか、馬鹿丸出しな発言だな。
そもそもRoRが使えれば、Ruby使えるわけだから、
PHPしか使えないなんてことは成り立たないわけで。
逆にRoRしか使えないやつはPHP使えないしな。
なんというか、馬鹿丸出しな発言だな。
そもそもRoRが使えれば、Ruby使えるわけだから、
PHPしか使えないなんてことは成り立たないわけで。
逆にRoRしか使えないやつはPHP使えないしな。
94nobodyさん
2006/01/01(日) 13:35:44ID:??? でもPHP使いよりRuby使いの方が仕事出来るのが事実。
97nobodyさん
2006/01/01(日) 16:18:04ID:??? 「○○使い」なんて言語限定してる時点でそいつは使えない
98nobodyさん
2006/01/05(木) 18:20:00ID:??? RubyでWeb開発とか趣味以外でやってる人いるの?
99nobodyさん
2006/01/05(木) 18:36:44ID:???100100
2006/01/07(土) 17:47:26ID:??? 誰も100をとってくれない件について
101nobodyさん
2006/01/07(土) 18:20:48ID:??? 0x64なんてキリ番じゃない。
102nobodyさん
2006/01/08(日) 16:02:42ID:??? 誤:使えない
正:使わない
正:使わない
103nobodyさん
2006/01/19(木) 01:21:15ID:Mz+RYmqL 試しにあげてみる
105nobodyさん
2006/01/27(金) 12:31:26ID:61WrCUJb PHPのthrowって例外オブジェクトがどこまでも飛んでいくから便利だね。
でもスパゲティの原因になったりしない?
いったいいつcatchされるんだろう・・・?みたいな。
もしくは、ここのcatchは何のためにあるんだろう・・・?みたいな。
Javaの場合throws書かないといけないけど。
そのまま便利さを享受すべきか、全てのメソッドにthrows相当のものをコメントとして加えておくべきか、ご意見いただけると幸いですw
でもスパゲティの原因になったりしない?
いったいいつcatchされるんだろう・・・?みたいな。
もしくは、ここのcatchは何のためにあるんだろう・・・?みたいな。
Javaの場合throws書かないといけないけど。
そのまま便利さを享受すべきか、全てのメソッドにthrows相当のものをコメントとして加えておくべきか、ご意見いただけると幸いですw
106nobodyさん
2006/01/28(土) 18:58:27ID:??? 俺の場合は、catchした上で処理を継続できるような場合はコメントに
@throws で記述しておく。
処理を続行できないような致命的な例外の類は一切キャッチしない or
トップレベルですべての Exception を catch するようにしてる。
@throws で記述しておく。
処理を続行できないような致命的な例外の類は一切キャッチしない or
トップレベルですべての Exception を catch するようにしてる。
107nobodyさん
2006/01/29(日) 22:11:15ID:??? 使い捨てなら気にせずthrowしまくるけど、ある程度規模が大きくなってきたら問答無用で@throws書いたほうがいい。
108nobodyさん
2006/01/30(月) 23:29:09ID:l8Eu1UQ7 自作のphpフレームワークを公開して見ました。
一応MVCモデルとオブジェクト指向プログラミングに基づいて作成しています。
もしよろしかったらご覧いただければ幸いです。
http://pharon.lolipop.jp/
一応MVCモデルとオブジェクト指向プログラミングに基づいて作成しています。
もしよろしかったらご覧いただければ幸いです。
http://pharon.lolipop.jp/
109nobodyさん
2006/01/31(火) 01:43:20ID:??? >>108
Webサイトが思い切りテーブルレイアウトで萎えた。
普通に見出しと本文でいいじゃん。
なんか怪しげなローマ字とか使ってるし。
詳しくは読んでないけど、まずはその素人臭さを払拭しないと
使ってみる気にもなれんね。
Webサイトが思い切りテーブルレイアウトで萎えた。
普通に見出しと本文でいいじゃん。
なんか怪しげなローマ字とか使ってるし。
詳しくは読んでないけど、まずはその素人臭さを払拭しないと
使ってみる気にもなれんね。
110nobodyさん
2006/01/31(火) 10:49:03ID:??? 整形済み文字にする必要性がわからん
111nobodyさん
2006/01/31(火) 11:17:28ID:??? あちこちにマルチし過ぎだしな。
まぁ、本人とも限らないが…。
まぁ、本人とも限らないが…。
112nobodyさん
2006/01/31(火) 13:18:08ID:??? pharonの読み方を教えてください
113nobodyさん
2006/01/31(火) 14:18:11ID:??? ファロン?
114nobodyさん
2006/02/02(木) 12:00:05ID:??? ファロン ファーロン 有名ピカソ
115nobodyさん
2006/02/03(金) 20:05:36ID:3T+q60Jd たぶんファーロンじゃないかな?
116nobodyさん
2006/03/24(金) 08:23:48ID:??? 過疎りすぎw
117nobodyさん
2006/03/27(月) 23:45:30ID:NOFET43q 期待age。
で、 Web サイトを PHP で組もうと思ってるんだけどオブジェクト指向でやったほうがベター?
まだ覚えてないけどな 。
で、 Web サイトを PHP で組もうと思ってるんだけどオブジェクト指向でやったほうがベター?
まだ覚えてないけどな 。
120nobodyさん
2006/03/28(火) 09:41:36ID:64m8EIcO PHPっていったら、HTMLを直に操作する軽快感が一番重要でしょ。
クラスとか使いはじめると、この足取りの軽さが激減するし、だったらJAVA使ったほうが賢いのでは。
大体WEBプログラミングでオブジェクト指向を得意げに使うこと自体が、スパゲティ大好きって言ってるようなもんだな。
クラスとか使いはじめると、この足取りの軽さが激減するし、だったらJAVA使ったほうが賢いのでは。
大体WEBプログラミングでオブジェクト指向を得意げに使うこと自体が、スパゲティ大好きって言ってるようなもんだな。
121nobodyさん
2006/03/28(火) 10:23:08ID:???122nobodyさん
2006/03/28(火) 10:51:45ID:??? 私も以前は PHP で OOP なんてする必要ねーよと思っていた。
特に PHP4 のクラスの実装はクソなので OOP するのも面倒だなと思っていた。
しかし、デスマってるプロジェクトに投入されて、
そのプロジェクトが index0001.php4 とか index0134.php4などと
200個くらいのファイルを羅列しているのを見たとき、
たとえ、PHP4 であろうとも OOP を導入すべきだという主張にかわったよ。
OO でなくとも、Logic と View は分けるべきだ。
できるなら、MVC でお願いします。
特に PHP4 のクラスの実装はクソなので OOP するのも面倒だなと思っていた。
しかし、デスマってるプロジェクトに投入されて、
そのプロジェクトが index0001.php4 とか index0134.php4などと
200個くらいのファイルを羅列しているのを見たとき、
たとえ、PHP4 であろうとも OOP を導入すべきだという主張にかわったよ。
OO でなくとも、Logic と View は分けるべきだ。
できるなら、MVC でお願いします。
123nobodyさん
2006/03/28(火) 12:02:55ID:??? >>1
Javaでは当たり前なことを
なぜこんなスレタイをたてるのか。
どうせならStrutsやJSF< Tapestry, Seasar2など
フレームワーク関係のスレタイにしておけばよかったのに。
Javaでは当たり前なことを
なぜこんなスレタイをたてるのか。
どうせならStrutsやJSF< Tapestry, Seasar2など
フレームワーク関係のスレタイにしておけばよかったのに。
124nobodyさん
2006/03/28(火) 12:04:50ID:??? >>17
一応JavaScriptでprivateにできるテクニックはあるあしい。
ローカル変数を使って。Ajaxに使われている
Prototypeというフレームワークもどきに使われているようだ。
かなり小汚いテクニックで読みにくいソースコードだが。
一応JavaScriptでprivateにできるテクニックはあるあしい。
ローカル変数を使って。Ajaxに使われている
Prototypeというフレームワークもどきに使われているようだ。
かなり小汚いテクニックで読みにくいソースコードだが。
126nobodyさん
2006/03/28(火) 12:07:24ID:??? >>122
しかし、PHPは未だに名前空間が無いから
PHP5からJavaライクなオブジェクト実装が
サポートされても使い勝手は相変わらず悪い。
ini_get()してからini_set()するのはもうウンザリ。
__autoloadだか忘れたがこれをうまくつかって
Javaのimportそっくりなことできそうにみえるが、
それも使い勝手が悪い。
しかし、PHPは未だに名前空間が無いから
PHP5からJavaライクなオブジェクト実装が
サポートされても使い勝手は相変わらず悪い。
ini_get()してからini_set()するのはもうウンザリ。
__autoloadだか忘れたがこれをうまくつかって
Javaのimportそっくりなことできそうにみえるが、
それも使い勝手が悪い。
128nobodyさん
2006/03/28(火) 12:40:59ID:???129nobodyさん
2006/03/28(火) 12:57:27ID:??? JSの場合はJava系みたいにインスタンス変数ごとにprivateっていう考え方よりも、Cのファイルスコープstaticみたいに、ファイルごと(モジュールごと)にローカライズ(隠蔽)するのが常套手段かな。
インスタンス変数はそもそも隠蔽する対象じゃないんだな。
2.0でclassとか拡張されてるから、また変わってくると思うけど。
インスタンス変数はそもそも隠蔽する対象じゃないんだな。
2.0でclassとか拡張されてるから、また変わってくると思うけど。
131nobodyさん
2006/03/28(火) 13:59:03ID:??? >>120
軽快感が重要というのは同意だけど、別にそれだけがPHPのメリットじゃないわけで。
クラスだって軽く使おうと思えば使えるし、お手軽なOOPという観点ならPHP>JAVAだと思う。
その分できないこともあるけどな。
軽快感が重要というのは同意だけど、別にそれだけがPHPのメリットじゃないわけで。
クラスだって軽く使おうと思えば使えるし、お手軽なOOPという観点ならPHP>JAVAだと思う。
その分できないこともあるけどな。
132nobodyさん
2006/03/28(火) 14:02:21ID:??? あれー。MVCスレってなかったっけ?
寝ぼけてたか?
寝ぼけてたか?
133nobodyさん
2006/03/28(火) 20:32:38ID:??? RubyとPHPはどっちが向いてる?
135nobodyさん
2006/03/28(火) 21:42:58ID:??? PHPのような低機能な言語でさらにクラス機能まで減らすのはバカ。
そんなことしたら、バカみたいなコードしかかけなくなる。
そんなことしたら、バカみたいなコードしかかけなくなる。
137nobodyさん
2006/03/28(火) 22:06:27ID:???138nobodyさん
2006/03/28(火) 22:28:04ID:??? PHPは変数のスコープを分けれない。それだけでもクラスを使う理由になる。
139nobodyさん
2006/03/28(火) 23:02:46ID:??? スコープは分かれてるけど、、、
名前空間がないってことか?
名前空間がないってことか?
140nobodyさん
2006/03/29(水) 02:32:56ID:??? 変数のスコープは分けれるけど、クラス名・関数名・定数名(クラス定数除く)のスコープが分けられないんだと思われ。
141nobodyさん
2006/03/29(水) 22:51:03ID:??? OOPの最大の利点は、再利用性が抜群に高いことだと思う。
自分はアクセスカウンターとか掲示板など、いろんな汎用スクリプトを作ってるんだけど
今後新しいスクリプトが簡単に作れるように、クラスモジュールを構築しながら作成してるから
開発効率がどんどんよくなってきている。
自分はアクセスカウンターとか掲示板など、いろんな汎用スクリプトを作ってるんだけど
今後新しいスクリプトが簡単に作れるように、クラスモジュールを構築しながら作成してるから
開発効率がどんどんよくなってきている。
142nobodyさん
2006/03/29(水) 23:13:01ID:??? でも気づいたら2、3行の処理でも関数にしてる自分がいたり・・・するのは俺だけか
143nobodyさん
2006/03/29(水) 23:15:45ID:??? そもそもクラスって何書くの?
147nobodyさん
2006/03/30(木) 15:06:58ID:???148nobodyさん
2006/03/30(木) 16:16:42ID:??? せんせい!ぜんぜんいみがわかりません><
149nobodyさん
2006/03/30(木) 16:29:49ID:??? PHP 限定で言えば global を書かずにコードを書く
ためにあると思っておいて間違いではない
コードにまとまりがないうちは不便だが、まとまりが
ない段階でダメだと思えばいい
ためにあると思っておいて間違いではない
コードにまとまりがないうちは不便だが、まとまりが
ない段階でダメだと思えばいい
150nobodyさん
2006/03/30(木) 17:18:32ID:??? それだったら普通の関数でよくね?
151nobodyさん
2006/03/30(木) 21:38:19ID:??? PHPだとそうなっちゃうよな
152nobodyさん
2006/03/31(金) 00:12:08ID:??? perlみたいにパッケージがあれば関数ライブラリだけでやってけるかも知れないが、PHPにパッケージはない。
代わりにクラスを使うしかない。
代わりにクラスを使うしかない。
154nobodyさん
2006/03/31(金) 05:07:58ID:mYeRlPC0 >>152
PHPのクラスがパッケージの代替でしかないなら、インスタンス化は無意味ってこと?
$hoge = new Hoge; $hoge->kansuu();
より
Hoge::kansuu();
の方が早いもんね
PHPのクラスがパッケージの代替でしかないなら、インスタンス化は無意味ってこと?
$hoge = new Hoge; $hoge->kansuu();
より
Hoge::kansuu();
の方が早いもんね
155nobodyさん
2006/03/31(金) 05:13:33ID:??? インスタンスにしないと継承でけんやん
156nobodyさん
2006/03/31(金) 05:31:31ID:??? 継承とかPHPで使ってるの見たことない。
グローバル変数使わないだけなら定数使うとかあるし
グローバル変数使わないだけなら定数使うとかあるし
157nobodyさん
2006/03/31(金) 05:36:54ID:??? ばりばり使いますよ
フレームワークなんて継承前提だし
フレームワークなんて継承前提だし
158nobodyさん
2006/03/31(金) 08:04:27ID:??? インスタンスにせんでも継承はできまっせ
159nobodyさん
2006/03/31(金) 08:09:59ID:???160nobodyさん
2006/03/31(金) 08:38:38ID:??? ・関数がいい人は関数でやればいい
・クラスがいい人はクラスでやればいい
↑ここまではおk。それじゃ、
・クラスがいい人は何のためにクラス使ってるの?しかもPHPでw ←いまここ
・クラスがいい人はクラスでやればいい
↑ここまではおk。それじゃ、
・クラスがいい人は何のためにクラス使ってるの?しかもPHPでw ←いまここ
161nobodyさん
2006/03/31(金) 08:56:52ID:??? OOP関係の本なら大概載っている
1.カプセル化
2.継承
3.ポリモフィズム
の、3つが何故良いのかを説明できれば、OOPの利点が見えるんじゃないの?
詳しい人↓よろ。
1.カプセル化
2.継承
3.ポリモフィズム
の、3つが何故良いのかを説明できれば、OOPの利点が見えるんじゃないの?
詳しい人↓よろ。
162nobodyさん
2006/03/31(金) 08:59:41ID:??? いまだにクラスを何に使ってるの、なんて聞く人がいるの?
163nobodyさん
2006/03/31(金) 09:03:25ID:??? 1.カプセル化
2.継承
3.ポリモフィズム
ならJavaのほうが初めからそういうふうに設計された言語だけあって有利じゃないの?
PHPのクラスにそういう利点て見出せないな。
2.継承
3.ポリモフィズム
ならJavaのほうが初めからそういうふうに設計された言語だけあって有利じゃないの?
PHPのクラスにそういう利点て見出せないな。
166nobodyさん
2006/03/31(金) 09:31:23ID:??? PHPはもともと関数志向?的な作りだから、
OOPに最適化されているとは言いがたいんだけど、
それでもクラスは使った方が便利だよ。
OOPに最適化されているとは言いがたいんだけど、
それでもクラスは使った方が便利だよ。
167nobodyさん
2006/03/31(金) 09:43:30ID:??? それじゃなぜPHPを使うの?
168nobodyさん
2006/03/31(金) 09:49:02ID:??? 総合的に見て、実用性に秀でているから。
171nobodyさん
2006/03/31(金) 14:59:28ID:??? カプセル化 【encapsulation】
読み方 : カプセルか
分野 : プログラミング > オブジェクト指向
オブジェクト指向プログラミングが持つ特徴の一つ。
データとそれを操作する手続きを一体化して「オブジェクト」として定義し、オブジェクト内の細かい仕様や構造を外部から隠蔽すること。
外部からは公開された手続きを利用することでしかデータを操作できないようにすることで、個々のオブジェクトの独立性が高まる。
カプセル化を進めることによりオブジェクト内部の仕様変更が外部に影響しなくなり、ソフトウェアの保守性や開発効率が高まり、プログラムの部分的な再利用が容易になる。
で、PHPで実用的なカプセル化ってどんなのよ?
読み方 : カプセルか
分野 : プログラミング > オブジェクト指向
オブジェクト指向プログラミングが持つ特徴の一つ。
データとそれを操作する手続きを一体化して「オブジェクト」として定義し、オブジェクト内の細かい仕様や構造を外部から隠蔽すること。
外部からは公開された手続きを利用することでしかデータを操作できないようにすることで、個々のオブジェクトの独立性が高まる。
カプセル化を進めることによりオブジェクト内部の仕様変更が外部に影響しなくなり、ソフトウェアの保守性や開発効率が高まり、プログラムの部分的な再利用が容易になる。
で、PHPで実用的なカプセル化ってどんなのよ?
172nobodyさん
2006/03/31(金) 15:56:15ID:??? >>171
PHP(4)ではカプセル化は無理。
だから、コメント上で、
どの情報にはアクセスできてどの情報はアクセスを禁止するかを明言する必要がある。
だからPHP(4)に関して言えば、OOPによるカプセル化の利点はない。
PHP(4)ではカプセル化は無理。
だから、コメント上で、
どの情報にはアクセスできてどの情報はアクセスを禁止するかを明言する必要がある。
だからPHP(4)に関して言えば、OOPによるカプセル化の利点はない。
173nobodyさん
2006/03/31(金) 17:08:32ID:??? Singleton前提のクラスは
インスタンス化する必要ないってことでOK?
でもコンストラクタでの初期設定ができないか…
インスタンス化する必要ないってことでOK?
でもコンストラクタでの初期設定ができないか…
174nobodyさん
2006/03/31(金) 17:39:36ID:CdaR7r2n PHPにおけるOOPの利点は、言葉で伝えてもなかなか分からないと思うので、
応用例を作ってみました。
文字列を1文字ずつ読み出すスクリプトです。
ソース
http://trashtoy.dw.land.to/app/chartest/chartest.zip
実行例
http://trashtoy.dw.land.to/app/chartest/sjis-test.php
http://trashtoy.dw.land.to/app/chartest/euc-test.php
応用例を作ってみました。
文字列を1文字ずつ読み出すスクリプトです。
ソース
http://trashtoy.dw.land.to/app/chartest/chartest.zip
実行例
http://trashtoy.dw.land.to/app/chartest/sjis-test.php
http://trashtoy.dw.land.to/app/chartest/euc-test.php
175174
2006/03/31(金) 17:44:05ID:???176nobodyさん
2006/03/31(金) 18:30:26ID:???177nobodyさん
2006/03/31(金) 18:35:59ID:???178174
2006/03/31(金) 19:14:39ID:??? ・そのスクリプトの中で、Webサイトを構築する上で有用な情報はどこにあるの?
ごめん。意味を正しく受け取ることが出来なかったんだけど、要は
「それを使って何か実際に役に立つものが作れるのか?」
ってことで良いですか?
これは自作の XML 解析モジュールに応用してます。
レンタルサーバーみたいに、外部モジュールを自由に導入できない
(すなわち libxml モジュールなどが使えない)環境のために作りました。
・そのスクリプトの中で、JavaやRubyに対するPHPの優位性はどこにあるの?
知りません。もしかしたら Java や Ruby のほうが優れているんじゃないんですか?
別に PHP が Java や Ruby より優れてなきゃいけない理由なんてないし。
ごめん。意味を正しく受け取ることが出来なかったんだけど、要は
「それを使って何か実際に役に立つものが作れるのか?」
ってことで良いですか?
これは自作の XML 解析モジュールに応用してます。
レンタルサーバーみたいに、外部モジュールを自由に導入できない
(すなわち libxml モジュールなどが使えない)環境のために作りました。
・そのスクリプトの中で、JavaやRubyに対するPHPの優位性はどこにあるの?
知りません。もしかしたら Java や Ruby のほうが優れているんじゃないんですか?
別に PHP が Java や Ruby より優れてなきゃいけない理由なんてないし。
179nobodyさん
2006/03/31(金) 19:54:05ID:??? 1つ目の質問についてだけど、いちおうWebProg板だしWebプログラミングでオブジェクト指向っていうのがテーマなスレだから、あんまりズレないようにしないとね。
XMLの解析に使ってる点はいいんじゃない。お疲れさん。
2つ目は他の言語でなくなぜPHPなのかって話題が出てたから聞いてみただけ。
PHPしか知らないってのも理由の1つとしてはいいけど、馬鹿にされるからあまり言わないほうがいいかもね。
XMLの解析に使ってる点はいいんじゃない。お疲れさん。
2つ目は他の言語でなくなぜPHPなのかって話題が出てたから聞いてみただけ。
PHPしか知らないってのも理由の1つとしてはいいけど、馬鹿にされるからあまり言わないほうがいいかもね。
180nobodyさん
2006/03/31(金) 21:05:47ID:??? >>179
そういうしょうもない煽りは
【戦場は】PHP王とJava乞食【エンタープライズ】
http://pc8.2ch.net/test/read.cgi/php/1140124172/
こっちでやれ
そういうしょうもない煽りは
【戦場は】PHP王とJava乞食【エンタープライズ】
http://pc8.2ch.net/test/read.cgi/php/1140124172/
こっちでやれ
181nobodyさん
2006/03/31(金) 22:24:05ID:??? >>171の続き
継承 【inheritance】
読み方 : けいしょう
別名 : インヘリタンス
分野 : プログラミング > オブジェクト指向
オブジェクト指向プログラミングにおいて、既に定義されているクラスをもとに、拡張や変更を加えた新しいクラスを定義すること。
元になるクラスを「スーパークラス」(super class)、あるいは「基底クラス」「基本クラス」(base class)などと呼び、新たに定義されたクラスを「サブクラス」(subclass)、あるいは「派生クラス」(derived class)と呼ぶ。
スーパークラスの性質はすべてサブクラスに受け継がれ、サブクラスではスーパークラスとの違いを定義するだけでよい。
複数のスーパークラスから新しいクラスを定義することを多重継承という。
で、PHPで実用的な継承ってどんなのよ?
継承 【inheritance】
読み方 : けいしょう
別名 : インヘリタンス
分野 : プログラミング > オブジェクト指向
オブジェクト指向プログラミングにおいて、既に定義されているクラスをもとに、拡張や変更を加えた新しいクラスを定義すること。
元になるクラスを「スーパークラス」(super class)、あるいは「基底クラス」「基本クラス」(base class)などと呼び、新たに定義されたクラスを「サブクラス」(subclass)、あるいは「派生クラス」(derived class)と呼ぶ。
スーパークラスの性質はすべてサブクラスに受け継がれ、サブクラスではスーパークラスとの違いを定義するだけでよい。
複数のスーパークラスから新しいクラスを定義することを多重継承という。
で、PHPで実用的な継承ってどんなのよ?
184nobodyさん
2006/03/31(金) 23:22:53ID:??? なんだこの流れ
PHP のスレは大量にあるんだからどこでも使えよ
単に PHP をバカにしたいやつはもうこないでくれないか
本当に知らないのならもっと真摯に勉強しろ
PHP のスレは大量にあるんだからどこでも使えよ
単に PHP をバカにしたいやつはもうこないでくれないか
本当に知らないのならもっと真摯に勉強しろ
186nobodyさん
2006/03/31(金) 23:42:06ID:??? それ以前に意味のある質問したことあるんですか?
187nobodyさん
2006/03/31(金) 23:55:31ID:??? その質問は意味があるんですか?
188174
2006/03/32(土) 00:32:20ID:???189nobodyさん
2006/03/32(土) 16:53:32ID:??? この流れじゃあ
「オブジェクト指向意味ワカランから本買うけど何がいい?」
なんて厨な質問できねーYO!
「オブジェクト指向意味ワカランから本買うけど何がいい?」
なんて厨な質問できねーYO!
191nobodyさん
2006/03/32(土) 20:29:42ID:???193nobodyさん
2006/03/32(土) 21:39:06ID:??? >>128
JavaやC++のように大規模開発でも使う場面が
多い言語ではprivateは重宝するよ。
なにせprivateをうまく使うとデバッグがしやすいしバグもとりやすく
テストもしやすくソースコードの信頼性も上がる。
JavaやC++のように大規模開発でも使う場面が
多い言語ではprivateは重宝するよ。
なにせprivateをうまく使うとデバッグがしやすいしバグもとりやすく
テストもしやすくソースコードの信頼性も上がる。
194nobodyさん
2006/03/32(土) 21:42:32ID:???195nobodyさん
2006/03/32(土) 21:43:46ID:??? >>143
この本を読めばクラスの使い方がわかるようになるよ。
超お勧め。
Amazon.co.jp:アジャイルソフトウェア開発の奥義: 本
http://www.amazon.co.jp/exec/obidos/ASIN/4797323361/249-2469696-1854764
この本を読めばクラスの使い方がわかるようになるよ。
超お勧め。
Amazon.co.jp:アジャイルソフトウェア開発の奥義: 本
http://www.amazon.co.jp/exec/obidos/ASIN/4797323361/249-2469696-1854764
196nobodyさん
2006/03/32(土) 21:45:56ID:??? >>156
おれはよく継承を使いまくってる。
将来拡張する予定があるものは
かならず(空でもいいので)スーパークラスを作って
継承してつかっている。
継承は使い方を間違えたり勘違いしている人間が使うと
継承=拡張そのものだと
誤解してだたやみくもに継承しまくることがあるので、
継承を使いこなしたければ
デザインパターンについてよく勉強した方が良い。
おれはよく継承を使いまくってる。
将来拡張する予定があるものは
かならず(空でもいいので)スーパークラスを作って
継承してつかっている。
継承は使い方を間違えたり勘違いしている人間が使うと
継承=拡張そのものだと
誤解してだたやみくもに継承しまくることがあるので、
継承を使いこなしたければ
デザインパターンについてよく勉強した方が良い。
197nobodyさん
2006/03/32(土) 21:47:44ID:??? >>160
> ・関数がいい人は関数でやればいい
> ・クラスがいい人はクラスでやればいい
> ↑ここまではおk。それじゃ、
> ・クラスがいい人は何のためにクラス使ってるの?しかもPHPでw ←いまここ
大規模化する可能性のあるソフトをPHPで作るとき。
顧客がPHPを使えと言ってきたら
PHPを使わざるを得ない。けれどもオブジェクト指向を
使わないで開発すると一体どんなとんでもない目に
あうのか散々味わってきたので
漏れはかならずオブジェクト指向でPHPコードを書く。
> ・関数がいい人は関数でやればいい
> ・クラスがいい人はクラスでやればいい
> ↑ここまではおk。それじゃ、
> ・クラスがいい人は何のためにクラス使ってるの?しかもPHPでw ←いまここ
大規模化する可能性のあるソフトをPHPで作るとき。
顧客がPHPを使えと言ってきたら
PHPを使わざるを得ない。けれどもオブジェクト指向を
使わないで開発すると一体どんなとんでもない目に
あうのか散々味わってきたので
漏れはかならずオブジェクト指向でPHPコードを書く。
198nobodyさん
2006/03/32(土) 21:49:55ID:??? 継承 = inheritance
拡張 = extends
なんだよな・・・・
拡張 = extends
なんだよな・・・・
199nobodyさん
2006/03/32(土) 21:50:04ID:??? >>163
それに関してはPHPでもJavaでも同じように実現できている。
PHPで問題なのは名前空間と型安全性問題。
メソッド引数に型指定もクラスしか使えないこと。
integer型やstring型などをメソッド引数に指定できないのが
今のPHP5の難点。Javaでいえば引数の型をObjectにしているようなものだ。
Perlでも同様だが。
それに関してはPHPでもJavaでも同じように実現できている。
PHPで問題なのは名前空間と型安全性問題。
メソッド引数に型指定もクラスしか使えないこと。
integer型やstring型などをメソッド引数に指定できないのが
今のPHP5の難点。Javaでいえば引数の型をObjectにしているようなものだ。
Perlでも同様だが。
200nobodyさん
2006/03/32(土) 21:52:35ID:??? >>171
PHP5はどうみてもJavaのパクリとしか
思えないほど十分にオブジェクト指向できるような
言語となった。問題なのは上でも述べているとおり
名前空間と型指定の曖昧さ、ほかに戻り値の型を指定できないことだね。
PHP5はどうみてもJavaのパクリとしか
思えないほど十分にオブジェクト指向できるような
言語となった。問題なのは上でも述べているとおり
名前空間と型指定の曖昧さ、ほかに戻り値の型を指定できないことだね。
202nobodyさん
2006/03/32(土) 21:59:03ID:??? >>174-175
そんなに汚くないコードだけど
ちょっと抵抗があるソースコードだな。
クラス名が全部小文字で
名前空間の替わりの役割を果たしているわけでもないのに
区切り文字に_(アンダースコア)つかうという
表記を未だに使っているとは・・・・。
やっまりキャメルケース(CamelCase)がわかりやすいと思うのだが。
それから一ファイルにつき一クラスにしておくのがベスト。
一つのファイルに複数のクラスを入れておくことはお勧めしない。
ファイル名とクラス名も一致させておく。名前空間が使えないので
そこだけ例外的にクラスだけ名に_(アンダースコア)を使う。
詳しくはPEARライブラリのソースコードを見てみてくれ。
それから文字コードがEUCだとは。
Unicode(UTF-8)で統一してくれれば
DBとのやりとりも楽なのだが。
そんなに汚くないコードだけど
ちょっと抵抗があるソースコードだな。
クラス名が全部小文字で
名前空間の替わりの役割を果たしているわけでもないのに
区切り文字に_(アンダースコア)つかうという
表記を未だに使っているとは・・・・。
やっまりキャメルケース(CamelCase)がわかりやすいと思うのだが。
それから一ファイルにつき一クラスにしておくのがベスト。
一つのファイルに複数のクラスを入れておくことはお勧めしない。
ファイル名とクラス名も一致させておく。名前空間が使えないので
そこだけ例外的にクラスだけ名に_(アンダースコア)を使う。
詳しくはPEARライブラリのソースコードを見てみてくれ。
それから文字コードがEUCだとは。
Unicode(UTF-8)で統一してくれれば
DBとのやりとりも楽なのだが。
203nobodyさん
2006/03/32(土) 22:01:42ID:???205nobodyさん
2006/03/32(土) 22:05:14ID:??? >>198
PHPやJavaではextendsで継承しているともいうし拡張するともいう。
しかしクラスそのものを拡張しているだけであって
それによってそれだけで簡単にソフトウェアの拡張性が高まるとは限らない。
という落とし穴に気をつけないといけない。
その辺りを素早く理解するにはデザインパターンを学ぶことをお勧めする。
この本は初心者には非常にわかりやすいので
かなりお勧め。
増補改訂版Java言語で学ぶデザインパターン入門
http://www.hyuki.com/dp/
PHPやJavaではextendsで継承しているともいうし拡張するともいう。
しかしクラスそのものを拡張しているだけであって
それによってそれだけで簡単にソフトウェアの拡張性が高まるとは限らない。
という落とし穴に気をつけないといけない。
その辺りを素早く理解するにはデザインパターンを学ぶことをお勧めする。
この本は初心者には非常にわかりやすいので
かなりお勧め。
増補改訂版Java言語で学ぶデザインパターン入門
http://www.hyuki.com/dp/
206nobodyさん
2006/03/32(土) 22:06:45ID:??? >>201
gotoか。Javaみたいに例外処理限定や
ラベル付きbreak, continue文だけにgoto同様の機能を
限定的に持たせるだけにしてくれればいいのだが・・・・。
C#みたいにJavaのラベル付きbreakやcontinueをgotoキーワードで
実装すると言うだけのレベルだろうか?
gotoか。Javaみたいに例外処理限定や
ラベル付きbreak, continue文だけにgoto同様の機能を
限定的に持たせるだけにしてくれればいいのだが・・・・。
C#みたいにJavaのラベル付きbreakやcontinueをgotoキーワードで
実装すると言うだけのレベルだろうか?
207nobodyさん
2006/03/32(土) 22:20:15ID:??? 188はTemplateMethodの実例を見せたかったんだろ
俺は悪いコードだとは思わないが
俺は悪いコードだとは思わないが
209nobodyさん
2006/03/32(土) 22:39:55ID:??? 何でいまどきgotoなんだろ。
俺的には無限再帰を可能にしてwhileとforみたいなダサいもんも排除した
関数言語にして欲しいと前から思っているんだけどそんな人いませんか。
俺的には無限再帰を可能にしてwhileとforみたいなダサいもんも排除した
関数言語にして欲しいと前から思っているんだけどそんな人いませんか。
210nobodyさん
2006/03/32(土) 23:12:37ID:??? Gauche とか使えば?
211nobodyさん
2006/03/32(土) 23:13:10ID:??? PHPで継承はあんまり必要ないな。
使い道がないから。
ウェブでオブジェクト指向するなら、JavaScriptが一番使いどころが多い。
使い道がないから。
ウェブでオブジェクト指向するなら、JavaScriptが一番使いどころが多い。
213nobodyさん
2006/03/32(土) 23:39:13ID:??? finalとabstractとinterfaceが
とりあえずどんなものかは
わかったけど実際にどうやって
それを有効利用できればいいか
わからない香具師に結城本はおすすめだと思う。
とりあえずどんなものかは
わかったけど実際にどうやって
それを有効利用できればいいか
わからない香具師に結城本はおすすめだと思う。
214nobodyさん
2006/03/32(土) 23:40:02ID:???216nobodyさん
2006/03/32(土) 23:56:49ID:??? デフォルトがprivateだったらすげー便利だったのになぁ。
217nobodyさん
2006/04/02(日) 00:13:33ID:??? Javaだったらデフォルトでpackage privateになるのにな。
publicと明示的につけないとパッケージ外部からアクセスできなくなる
ってことが名前空間がないPHPではできないから
デザインパターンの実装も中途半端になる。
publicと明示的につけないとパッケージ外部からアクセスできなくなる
ってことが名前空間がないPHPではできないから
デザインパターンの実装も中途半端になる。
218nobodyさん
2006/04/02(日) 01:06:11ID:???219nobodyさん
2006/04/02(日) 01:15:39ID:???220nobodyさん
2006/04/02(日) 01:57:43ID:??? PHP6のgotoは、gotoというキーワードが実装される訳ではなくて、
for () {
if () {
break foo;
}
print "bar\n";
foo:
print "baz\n";
}
こんな感じに書けるようになるもの。
for () {
if () {
break foo;
}
print "bar\n";
foo:
print "baz\n";
}
こんな感じに書けるようになるもの。
222nobodyさん
2006/04/02(日) 07:04:12ID:??? >>199,200
型安全性ならis_arrayとかis_stringとかinstanceofでチェックすればいいだけじゃないの?
型安全性ならis_arrayとかis_stringとかinstanceofでチェックすればいいだけじゃないの?
223nobodyさん
2006/04/02(日) 07:17:49ID:??? それはそうだが
何が求められているのかを知るために
中身まで見ないといけないのはあまりよろしくないだろう。
何が求められているのかを知るために
中身まで見ないといけないのはあまりよろしくないだろう。
224nobodyさん
2006/04/02(日) 07:50:00ID:??? つ @param @return
225nobodyさん
2006/04/02(日) 09:57:52ID:??? 動的型付け言語であるPHPで、型を指定したいってのがそもそも可笑しな話なんだよな。
それでもタイプヒンティングみたいにオブジェクトの型を動的にチェックしてくれるようにする構文はいいアイデアだと思った。
Javaでいう変数の静的な型指定(つーかC/C++からだけど)と構文を似せたってのも良い。
JavaScript2.0なんかもそういう方向に行ってるね。
>>199
> integer型やstring型などをメソッド引数に指定できないのが
たぶんだけど、統一性の問題があるからだと思う。
例えば引数にintを指定したメソッドがあったとして、呼び出すときにstringを渡したからってエラーにすべきではないでしょ。
その辺の仕様がうまくいかないんじゃないかな。
それでもタイプヒンティングみたいにオブジェクトの型を動的にチェックしてくれるようにする構文はいいアイデアだと思った。
Javaでいう変数の静的な型指定(つーかC/C++からだけど)と構文を似せたってのも良い。
JavaScript2.0なんかもそういう方向に行ってるね。
>>199
> integer型やstring型などをメソッド引数に指定できないのが
たぶんだけど、統一性の問題があるからだと思う。
例えば引数にintを指定したメソッドがあったとして、呼び出すときにstringを渡したからってエラーにすべきではないでしょ。
その辺の仕様がうまくいかないんじゃないかな。
227nobodyさん
2006/04/02(日) 10:24:36ID:??? >>222
以前もどこかのスレで議論があったが。
それだけでは以下の問題を解決できない。
$number = 9;
$value = 1;
$x = $number + value *2;
$y = $x * $x + 4 * $number;
$number = 1000;
$z = $x / ($y + $number);
とした適当なコードがあったとき、
あとから
$x = $number + value *2;
の部分を
$x = $nunber + value *2;
と書きかえても $numberと$nunberとの違いの
に気づかない。
そして路頭に迷ったあげくにデバッグに無駄に時間をかけることになって
開発速度が衰える。
以前もどこかのスレで議論があったが。
それだけでは以下の問題を解決できない。
$number = 9;
$value = 1;
$x = $number + value *2;
$y = $x * $x + 4 * $number;
$number = 1000;
$z = $x / ($y + $number);
とした適当なコードがあったとき、
あとから
$x = $number + value *2;
の部分を
$x = $nunber + value *2;
と書きかえても $numberと$nunberとの違いの
に気づかない。
そして路頭に迷ったあげくにデバッグに無駄に時間をかけることになって
開発速度が衰える。
228nobodyさん
2006/04/02(日) 10:28:07ID:??? >>225
Javaみたいにラッパークラスを作ってしまえばいいかもしれんな。
final class Integer extends Number {
$private $value;
__construct($value){
if($valueがint型であれば){
$this->value = $value;
} else {
throw new NumberFormatException("整数以外入力するんじゃねえぞこのバカ野郎氏ね!");
}
}
}
Javaみたいにラッパークラスを作ってしまえばいいかもしれんな。
final class Integer extends Number {
$private $value;
__construct($value){
if($valueがint型であれば){
$this->value = $value;
} else {
throw new NumberFormatException("整数以外入力するんじゃねえぞこのバカ野郎氏ね!");
}
}
}
229nobodyさん
2006/04/02(日) 10:29:01ID:??? privateに$が余分についていた。
あとは適度に必要な変換メソッドを追加しておくべし。
intValue()とか
あとは適度に必要な変換メソッドを追加しておくべし。
intValue()とか
230nobodyさん
2006/04/02(日) 10:46:56ID:???231nobodyさん
2006/04/02(日) 13:43:38ID:???234nobodyさん
2006/04/03(月) 11:16:30ID:??? >>233
つ 「それだとAUTO-BOXINGが欲しくなるな」
満足戴けたかな?
PHPみたいな型なし言語なら、Javaみたいなプリミティブ型とそのラッパークラスのオートボクシング/アンボクシングだけでなく、もう少し汎用的な自動型変換が欲しいところだな。
function method(int $x) {}
を
method("100");
っていうふうに呼び出したならintにキャストするくらいの自動化はあってもいいと思う。
(今あるPHPのタイプヒンティングだと、型が違うとエラーっていう設計だから)
もともとPHPは変数の実行時における型が文字列か整数かを意識しなくても適宜変換してくれるように設計された言語なわけだし。
つ 「それだとAUTO-BOXINGが欲しくなるな」
満足戴けたかな?
PHPみたいな型なし言語なら、Javaみたいなプリミティブ型とそのラッパークラスのオートボクシング/アンボクシングだけでなく、もう少し汎用的な自動型変換が欲しいところだな。
function method(int $x) {}
を
method("100");
っていうふうに呼び出したならintにキャストするくらいの自動化はあってもいいと思う。
(今あるPHPのタイプヒンティングだと、型が違うとエラーっていう設計だから)
もともとPHPは変数の実行時における型が文字列か整数かを意識しなくても適宜変換してくれるように設計された言語なわけだし。
236nobodyさん
2006/04/03(月) 14:54:33ID:???238nobodyさん
2006/04/03(月) 15:35:04ID:???239nobodyさん
2006/04/03(月) 23:39:48ID:??? PHPでそんなことするくらいなら、素直にJava使うわ。
240nobodyさん
2006/04/03(月) 23:50:13ID:??? 引数に型書くだけの話やんけ
241nobodyさん
2006/04/04(火) 03:55:07ID:B/b940FU 普通のclassと、
abstractなclass,
interfaceは、
クラス名から変えた方がいいんかな?
どうやってる?
abstractなclass,
interfaceは、
クラス名から変えた方がいいんかな?
どうやってる?
242nobodyさん
2006/04/04(火) 15:51:08ID:??? >>241
俺はabstractもinterfaceも普通の名前にしてる。
abstractやinterfaceをある特定クラスの仕様だけ抽象したことを表現したい場合に限り「Abstract〜」とか「〜Interface」にするかも。
例外だったら「〜Exception」てつけるけど。
俺はabstractもinterfaceも普通の名前にしてる。
abstractやinterfaceをある特定クラスの仕様だけ抽象したことを表現したい場合に限り「Abstract〜」とか「〜Interface」にするかも。
例外だったら「〜Exception」てつけるけど。
243nobodyさん
2006/04/04(火) 23:58:21ID:??? >>241-242
というか、C#やC++みたいに継承も実装もおなじ::をつかっているわけではなく
PHPはjavaのようにちゃんと継承はextends、インターフェース実装はimplements
を使うように指定されているから
名前を見ただけでインターフェースかクラスかわかるようにまでしなくてもええと思う。
IDE使えば名前指定しなくてもさらに一目でわかるし。PHPのIDEはよくわかんないけど
というか、C#やC++みたいに継承も実装もおなじ::をつかっているわけではなく
PHPはjavaのようにちゃんと継承はextends、インターフェース実装はimplements
を使うように指定されているから
名前を見ただけでインターフェースかクラスかわかるようにまでしなくてもええと思う。
IDE使えば名前指定しなくてもさらに一目でわかるし。PHPのIDEはよくわかんないけど
245nobodyさん
2006/04/14(金) 07:15:35ID:??? 質問です。
ビジネスロジックとドメインロジックとアプリケーションロジックは、プレゼンテーションロジックと対比的な位置づけですが、基本的に同じものですか?
ビジネスロジックとドメインロジックとアプリケーションロジックは、プレゼンテーションロジックと対比的な位置づけですが、基本的に同じものですか?
246nobodyさん
2006/04/14(金) 10:33:43ID:??? >>245
使用する分析・設計手法によって、使われる用語とその定義は違ってきます。
こういうインフォーマルな場では、それぞれが別の立場・定義で勝手に用語を使う
ことが多く、基本的な認識がすれ違ったまま不毛なレスが飛び交うのが常です。
まずは専門書で系統立った知識を得てから、自分なりの経験と知見を積んでいけば
その類のどーでもいい疑問は解決すると思われます。
使用する分析・設計手法によって、使われる用語とその定義は違ってきます。
こういうインフォーマルな場では、それぞれが別の立場・定義で勝手に用語を使う
ことが多く、基本的な認識がすれ違ったまま不毛なレスが飛び交うのが常です。
まずは専門書で系統立った知識を得てから、自分なりの経験と知見を積んでいけば
その類のどーでもいい疑問は解決すると思われます。
247nobodyさん
2006/04/22(土) 05:13:55ID:cnsSSisF プロパティをtrue/falseにするメソッド名ってそれぞれどんな命名にする?
249nobodyさん
2006/05/28(日) 01:10:04ID:??? >>247
どんなクラスのプロパティを作るかがわかれば
自ずとそれに見合った名前がわかると思うんだが。
どうしても名前がわからないときは>>248のようになるが。
そのプロパティがオセロの駒であれば、
setWhite(), setBlack() みたいな名前にするだろうし。
もしくはset(Color.WHITE). set(Color.BLACK)など。
表、裏を表すなら setHeads(), setTails()など
0か1なら setZero(), setOne()または>>248のように。
あと、メソッドを複数にする必要も、メソッドに引数を
割り当てる必要もないケースであるケースもありうる。
trueだったらfalse, falseだったtrueに反転するだけのメソッド
public void reverse(){
this.flagment = !this.flagment;
}
を定義するだけのものとか。
どんなクラスのプロパティを作るかがわかれば
自ずとそれに見合った名前がわかると思うんだが。
どうしても名前がわからないときは>>248のようになるが。
そのプロパティがオセロの駒であれば、
setWhite(), setBlack() みたいな名前にするだろうし。
もしくはset(Color.WHITE). set(Color.BLACK)など。
表、裏を表すなら setHeads(), setTails()など
0か1なら setZero(), setOne()または>>248のように。
あと、メソッドを複数にする必要も、メソッドに引数を
割り当てる必要もないケースであるケースもありうる。
trueだったらfalse, falseだったtrueに反転するだけのメソッド
public void reverse(){
this.flagment = !this.flagment;
}
を定義するだけのものとか。
250nobodyさん
2006/05/28(日) 09:18:03ID:??? 反転ならtoggleを使いたくなる
251nobodyさん
2006/11/04(土) 00:59:33ID:1MW2WScy スレを読まずに書くけど。
俺オブジェクト指向ってよくわかんないのね。で、
PHPでさ、テーブルごとにクラス作ってその中で
SQL発行してるソース見て思ったんだけど。こういう
のってテーブルのJOINはどう扱ってんの?
俺オブジェクト指向ってよくわかんないのね。で、
PHPでさ、テーブルごとにクラス作ってその中で
SQL発行してるソース見て思ったんだけど。こういう
のってテーブルのJOINはどう扱ってんの?
252nobodyさん
2006/11/04(土) 05:52:13ID:??? だからそれはテーブルじゃなくてデータオブジェクトです
253nobodyさん
2006/11/04(土) 15:27:28ID:??? 良スレ発見
254nobodyさん
2006/11/04(土) 17:39:13ID:???255nobodyさん
2006/11/21(火) 13:27:36ID:??? OOPを0から学ぶとすると、やはりJavaが最適なのでしょうか?
Railsで有名になったRubyでもよさそうですが、
どれを勉強しようか悩みます。
どちらも実行環境を整えるのが自分にとって一苦労な気がするので、
今まで環境が作りやすいPHPに逃げていましたが、
一向にOOPの概念がわからずじまいで、
本格的にJavaかRubyを入れてやってみようと考えています。
Railsで有名になったRubyでもよさそうですが、
どれを勉強しようか悩みます。
どちらも実行環境を整えるのが自分にとって一苦労な気がするので、
今まで環境が作りやすいPHPに逃げていましたが、
一向にOOPの概念がわからずじまいで、
本格的にJavaかRubyを入れてやってみようと考えています。
256nobodyさん
2006/11/21(火) 14:58:55ID:??? >>255
つ ttp://smalltalk.cincom.jp/scripts/smalltalk.dll/tutorials/index.ssp
つ ttp://smalltalk.cincom.jp/scripts/smalltalk.dll/tutorials/index.ssp
257nobodyさん
2006/11/23(木) 02:32:55ID:??? オブジェクト指向プログラミングの学習が目的なら、ウェブアプリやっても無駄だと思うよ。GUIのあるデスクトップアプリ作った方がいい。
258nobodyさん
2006/11/23(木) 10:48:14ID:??? > オブジェクト指向プログラミングの学習が目的なら、ウェブアプリやっても無駄だと思うよ。GUIのあるデスクトップアプリ作った方がいい。
はいはいわろすわろす。
はいはいわろすわろす。
259nobodyさん
2006/11/23(木) 11:32:44ID:??? GUIのプログラミングで身に付くのはオブジェクト指向よりむしろイベントドリブンだよね。
260nobodyさん
2006/11/23(木) 11:33:23ID:???261nobodyさん
2006/11/23(木) 16:55:37ID:??? webアプリでがちがちのオブジェクト指向やると重くならね?
262nobodyさん
2006/11/23(木) 18:29:52ID:??? もっと抽象的な議論しようぜ。
264nobodyさん
2006/11/24(金) 05:31:59ID:??? リクエストがあったらhtml吐き出して終わり、なタイプのwebアプリでは
オブジェクト指向はあまり身につかない。
なにしろ、インスタンスの寿命が短かくて、全員が突然死するわけだから、
時間軸がそっくり抜けてるのだよ。
気にしながらライブラリを作れば、ソースの構造的な部分はある程度身につくかな、くらいだろう。
オブジェクト指向はあまり身につかない。
なにしろ、インスタンスの寿命が短かくて、全員が突然死するわけだから、
時間軸がそっくり抜けてるのだよ。
気にしながらライブラリを作れば、ソースの構造的な部分はある程度身につくかな、くらいだろう。
265nobodyさん
2006/11/24(金) 09:34:29ID:??? JavaでWebアプリしかやらない人は、J2EEパターンとかDIコンテナとか使って
「オブジェクト指向」と思っているんじゃないかな?
今のJavaのWebはレイヤー構造や
ドメインモデル(エンティティ)とビジネスロジックを完全に分離した設計、
ステートレス・スレッドセーフ・request/sessionスコープなどが優先されて、
本来のオブジェクト指向信者から見ると、論理的にあまりきれいな設計ではない。
とは言える。
言語レベルを超えた「モデリング」(UML等は使っても良いが)を
そのまま実装にまで落とすには無理がある。
「オブジェクト指向」と思っているんじゃないかな?
今のJavaのWebはレイヤー構造や
ドメインモデル(エンティティ)とビジネスロジックを完全に分離した設計、
ステートレス・スレッドセーフ・request/sessionスコープなどが優先されて、
本来のオブジェクト指向信者から見ると、論理的にあまりきれいな設計ではない。
とは言える。
言語レベルを超えた「モデリング」(UML等は使っても良いが)を
そのまま実装にまで落とすには無理がある。
266nobodyさん
2006/11/24(金) 22:24:39ID:??? 要するに Java なんかつかうやつはばかですってこと?
267nobodyさん
2006/11/25(土) 16:46:42ID:??? JavaでWebなんて業務外では使わないしどうでもいい。
269nobodyさん
2006/11/28(火) 00:51:55ID:??? 本気でオブジェクト指向やりたいならウェブでは役者不足ってこと。
270nobodyさん
2006/11/28(火) 01:02:02ID:??? 役者不足(笑)
271nobodyさん
2006/11/28(火) 07:32:06ID:??? Actorが不足してるわけですな。
272nobodyさん
2006/11/28(火) 11:24:02ID:??? OOの概念を把握したりOOの組み方を学ぶだけなら
PHPでもそれなりに勉強できると思うけどな
PHP5で書かれたフレームワークやライブラリのコードを眺めてみたら
PHPでもそれなりに勉強できると思うけどな
PHP5で書かれたフレームワークやライブラリのコードを眺めてみたら
273nobodyさん
2006/11/28(火) 11:34:28ID:???274nobodyさん
2006/11/29(水) 09:38:30ID:??? それOOをまったく理解できなかった俺が買ってみた
どうなるか人柱になるわw
著者でググったらブログが一番上にヒットした
どうなるか人柱になるわw
著者でググったらブログが一番上にヒットした
275nobodyさん
2006/11/29(水) 10:49:08ID:??? PHPのデザパタ入門ってどうなんだろうか。
レビュー期待www
レビュー期待www
276nobodyさん
2006/11/29(水) 16:42:27ID:???277nobodyさん
2006/11/29(水) 16:50:30ID:??? 一口にオブジェクト指向って言ってもメッセージ主体かクラス主体かで変わってくるからね。
C++, Java, PHP は後者。前者は Smalltalk, Objective-C, io とか。
C++, Java, PHP は後者。前者は Smalltalk, Objective-C, io とか。
278nobodyさん
2006/11/29(水) 17:04:29ID:??? >>276
簡単なライブラリから眺めていけばいいよPEARのDBとか
OOPを一番手っ取り早く理解する方法は
OOで適当な分野のライブラリを自分でコード書いてみる事
当然よく分からないうちはコードは汚い
なのでPEARで同じような分野のライブラリコードを眺めて
どういう構造なのかを調べてみながら自分のコードを書き直す
それの繰り返しで把握していくもんだと思う
いきなりデザパタの勉強とかやってもあんまり意味がない
OOPを理解していく上でどういう局面で
どういうパターンを使ったら良いという事がわからないから
パターンってのは結局ノウハウの事だし
ノウハウってのは必要に応じて生まれて出来上がっていくもんだから
ノウハウ自体を先に説明されてもピンとこないはず
英語は勉強するしかないがまめに単語の意味を引くようにしておけば
文法を正確に理解してなくてもだいたい把握できるようになるはず
ネットならすぐに調べられるんだからそのコストは無駄にはならない
コードは万国共通だ
ごちゃごちゃしてても所詮はPHPのコード、Cやアセンブリじゃない
ゆっくり読んでいけばわかる
小さなライブラリでもよくできてるライブラリはたくさんある
その区別がつくようになっていけば
自ずといいコードも書けるようになるだろう
簡単なライブラリから眺めていけばいいよPEARのDBとか
OOPを一番手っ取り早く理解する方法は
OOで適当な分野のライブラリを自分でコード書いてみる事
当然よく分からないうちはコードは汚い
なのでPEARで同じような分野のライブラリコードを眺めて
どういう構造なのかを調べてみながら自分のコードを書き直す
それの繰り返しで把握していくもんだと思う
いきなりデザパタの勉強とかやってもあんまり意味がない
OOPを理解していく上でどういう局面で
どういうパターンを使ったら良いという事がわからないから
パターンってのは結局ノウハウの事だし
ノウハウってのは必要に応じて生まれて出来上がっていくもんだから
ノウハウ自体を先に説明されてもピンとこないはず
英語は勉強するしかないがまめに単語の意味を引くようにしておけば
文法を正確に理解してなくてもだいたい把握できるようになるはず
ネットならすぐに調べられるんだからそのコストは無駄にはならない
コードは万国共通だ
ごちゃごちゃしてても所詮はPHPのコード、Cやアセンブリじゃない
ゆっくり読んでいけばわかる
小さなライブラリでもよくできてるライブラリはたくさんある
その区別がつくようになっていけば
自ずといいコードも書けるようになるだろう
279nobodyさん
2006/11/30(木) 00:04:08ID:??? オブジェクト指向について語るとき、
「どのような概念か」と「どう使うのか」
を分けないで話すとひどいことになる、
ということだな。
「どのような概念か」と「どう使うのか」
を分けないで話すとひどいことになる、
ということだな。
280nobodyさん
2006/12/02(土) 14:06:00ID:???281280
2006/12/03(日) 01:33:46ID:??? 昨日本を読んでみた。
サンプルコードが載っていて分かりやすかった。
UMLの説明はさすがに他書で勉強しないと、このページ数じゃフォローできんね。
(ないよりましだけど…)
デザインパターンが活用できるようになれば、OOPが楽しくなるだろうなー☆\(^o^)/
サンプルコードが載っていて分かりやすかった。
UMLの説明はさすがに他書で勉強しないと、このページ数じゃフォローできんね。
(ないよりましだけど…)
デザインパターンが活用できるようになれば、OOPが楽しくなるだろうなー☆\(^o^)/
282274
2006/12/03(日) 18:41:26ID:??? 届いたよ!
眠くてまだ読んでない
ちょっと開いたけど
眠くてまだ読んでない
ちょっと開いたけど
283nobodyさん
2006/12/10(日) 19:06:09ID:??? このスレ、
サーバサイドプログラミングでのOOかよ
期待して損した・・・
サーバサイドプログラミングでのOOかよ
期待して損した・・・
285nobodyさん
2006/12/18(月) 23:57:03ID:VHWnyE8e WebObjectsがフリーになるから 勉強しといたほうがいいぜ
286nobodyさん
2006/12/19(火) 09:58:57ID:???287274
2007/01/11(木) 15:28:53ID:??? 半分くらい読んだけど、7章が無いのが残念だった
そこらへんは著者さんのブログやサイトを参考に補完することにしようorz
そこらへんは著者さんのブログやサイトを参考に補完することにしようorz
289nobodyさん
2007/01/21(日) 01:00:05ID:0bZ76xtY PHP5のマニュアル(オブジェクトとクラスの項)とJava入門書を読み始めたばかりなんだけど、
PHP5とJavaのメソッドオーバーロードって全然別物なの?
PHP5とJavaのメソッドオーバーロードって全然別物なの?
290nobodyさん
2007/01/21(日) 01:03:49ID:iXs223c1 スクイークに詳しい人いる?
291nobodyさん
2007/01/21(日) 01:20:02ID:dNBfq9SO >>288 PHPのオブジェクト指向を先に覚えるより、CやVBなどのプログラムを覚えたほうが
組み方は理解できるよ。短時間で
組み方は理解できるよ。短時間で
294nobodyさん
2007/01/21(日) 20:40:37ID:??? なんかPHPerは無条件でオブジェクト指向マンセーしてる奴が多いよな・・・
手続き型の進化系がオブジェクト指向ってわけじゃないからね
手続き型的なロジックが有効なところもあればオブジェクト指向が有効なところもある
俺が確かに言えることは、オブジェクト指向は少なくとも万能ではないってこと
だからオブジェクト指向で書かないとスパゲティになるとかわけわかんないんだよ
むしろオブジェクト指向によって作られたスパゲティの方が多いという現実さえあるのに・・・
手続き型の進化系がオブジェクト指向ってわけじゃないからね
手続き型的なロジックが有効なところもあればオブジェクト指向が有効なところもある
俺が確かに言えることは、オブジェクト指向は少なくとも万能ではないってこと
だからオブジェクト指向で書かないとスパゲティになるとかわけわかんないんだよ
むしろオブジェクト指向によって作られたスパゲティの方が多いという現実さえあるのに・・・
296nobodyさん
2007/01/21(日) 22:02:30ID:dNBfq9SO まぁ考え方が増えたってことでいいんじゃない?
297nobodyさん
2007/01/22(月) 12:52:43ID:??? コードがアチコチに飛ぶって意味では、gotoも多態を使いまくったトリッキーなコードも
スパゲッティには変わりないよ。
スパゲッティには変わりないよ。
298nobodyさん
2007/01/22(月) 22:25:58ID:??? 正直、オブジェクト指向で作られたソースがさっぱり理解できないのだが・・・
もうダメなのかな俺
もうダメなのかな俺
299nobodyさん
2007/01/22(月) 22:58:28ID:??? 何言語でどういう部分が分からないの?
300nobodyさん
2007/01/22(月) 23:42:41ID:??? Javaで作られたCMS。ソースにコメント一切無し。
消えた前担当が全然ドキュメント残してないってのもあるが、Perl使いの俺にはサパーリ。
まぁ何だ、愚痴だ。スマン。
消えた前担当が全然ドキュメント残してないってのもあるが、Perl使いの俺にはサパーリ。
まぁ何だ、愚痴だ。スマン。
301nobodyさん
2007/01/22(月) 23:47:33ID:c6xxxnP6 >>298 これわかる?
Webより抜粋 PHP (編集しました)
******************************************************************************
* class Shopping {
* ク var $item = "コンピュータ"; これがメンバ変数の設定
* var $price = 99800; コンピュータが99800
* ラ ************************************************************************
* function getTotal() {
* ス $tax = $this->price * 0.05;
* return $this->price + $tax; // 税込価格の設定 これがメソッドの定義
* } 消費税の設定と選択した商品に消費税を加える定義
* }
******************************************************************************
$result = new Shopping(); 上記で指定したクラスをnewステートメントを使ってオブジェクトに格納します
$item = $result->item;
print("$item の会計は".$result->getTotal()."円になります\n"); これが表示結果
******************************************************************************
Webより抜粋 PHP (編集しました)
******************************************************************************
* class Shopping {
* ク var $item = "コンピュータ"; これがメンバ変数の設定
* var $price = 99800; コンピュータが99800
* ラ ************************************************************************
* function getTotal() {
* ス $tax = $this->price * 0.05;
* return $this->price + $tax; // 税込価格の設定 これがメソッドの定義
* } 消費税の設定と選択した商品に消費税を加える定義
* }
******************************************************************************
$result = new Shopping(); 上記で指定したクラスをnewステートメントを使ってオブジェクトに格納します
$item = $result->item;
print("$item の会計は".$result->getTotal()."円になります\n"); これが表示結果
******************************************************************************
303nobodyさん
2007/01/22(月) 23:56:53ID:??? VB系のプログラム言語と識別子が逆だからめんどうだよね
304nobodyさん
2007/02/05(月) 10:08:30ID:??? PHP4のオブジェクト指向が中途半端だからいけない
305nobodyさん
2007/02/05(月) 15:03:21ID:??? PHPはオブジェクト指向言語ではありません
306nobodyさん
2007/02/06(火) 00:14:50ID:??? >>305
それだから、PHPでオブジェクト指向はしない...と思っていたんだけど
最近ちょっとずつやってみている。
しかし一番最初に触った言語がPHPだったもんだから、この前
C言語を勉強しているときに「あー、やっぱPHPって気持ち悪いな」って思った。
なんか仕様がグダグダだし、10年くらいすれば忘れられそうだなとか思った。
それだから、PHPでオブジェクト指向はしない...と思っていたんだけど
最近ちょっとずつやってみている。
しかし一番最初に触った言語がPHPだったもんだから、この前
C言語を勉強しているときに「あー、やっぱPHPって気持ち悪いな」って思った。
なんか仕様がグダグダだし、10年くらいすれば忘れられそうだなとか思った。
307nobodyさん
2007/02/06(火) 12:33:16ID:??? 10年後には確実に気持ちいい言語になってるのがPHPだけどな
308nobodyさん
2007/02/06(火) 13:31:27ID:??? それだけは無いな
309nobodyさん
2007/02/06(火) 13:46:07ID:zUpPH+yJ 10年前のPHP3の時は地獄のようでした
310nobodyさん
2007/02/06(火) 18:47:34ID:urembAfZ オブ脳とPHPデザパタを読んでオブジェクト指向というのを実践しようとしたけど、
ちゃんとわかってないからか、酷いスパゲッティーになる気がして途中でやめた。
中途半端なオブジェクト指向を解説してるところはないのかな。
俺の今の思考↓。
クラスのメリット
・関数を纏められるの。
・纏めた関数だけ扱う変数を作れる。
・継承のおかげで、元は残したまま拡張した纏まりを別の場所で使える
ちゃんとわかってないからか、酷いスパゲッティーになる気がして途中でやめた。
中途半端なオブジェクト指向を解説してるところはないのかな。
俺の今の思考↓。
クラスのメリット
・関数を纏められるの。
・纏めた関数だけ扱う変数を作れる。
・継承のおかげで、元は残したまま拡張した纏まりを別の場所で使える
311nobodyさん
2007/02/06(火) 21:26:44ID:??? よし、オブジェクト指向で書くぞ!って書くもんじゃなくて
気づいたら知らぬ間にOOで書いてるもんだ
気づいたら知らぬ間にOOで書いてるもんだ
312nobodyさん
2007/02/07(水) 00:55:11ID:???313nobodyさん
2007/02/08(木) 08:51:12ID:??? 手続き型で書かれたスクリプトをclassで囲んで、
処理を関数で小分けして、例外かましただけ、
みたいなのあるよね
継承、再利用、知るかボケみたいな
俺がまさに今やってることだけど(´・ω・`)
処理を関数で小分けして、例外かましただけ、
みたいなのあるよね
継承、再利用、知るかボケみたいな
俺がまさに今やってることだけど(´・ω・`)
314nobodyさん
2007/02/10(土) 02:36:40ID:??? 他の人はどうか知らんのだけど、俺個人レベルでは
再利用や拡張のためにクラスを書いたり継承したりはあんまりない。
多態性を持たせるための手段として継承させる程度かな。
PHP5時代の本は買ったことないのだけど、PHP4の時代は
継承による拡張ばかり取り上げていて、カプセル化とか多態性の
ことはあまり取り上げられてなかった希ガス。まぁPHPもデザパタが
取り上げられているので多態性については出てくるでしょうけどカプセル化は?
PEARのDB(MDB2)もFetchモードがObjectのとき、StdClassだけじゃなくて
XmlSerializerみたいにクラスを指定できたらいいなと思うのは変?
>>310にあるメリットは、結果であって目的ではないと思う、
と思えるようになった今日この頃w
再利用や拡張のためにクラスを書いたり継承したりはあんまりない。
多態性を持たせるための手段として継承させる程度かな。
PHP5時代の本は買ったことないのだけど、PHP4の時代は
継承による拡張ばかり取り上げていて、カプセル化とか多態性の
ことはあまり取り上げられてなかった希ガス。まぁPHPもデザパタが
取り上げられているので多態性については出てくるでしょうけどカプセル化は?
PEARのDB(MDB2)もFetchモードがObjectのとき、StdClassだけじゃなくて
XmlSerializerみたいにクラスを指定できたらいいなと思うのは変?
>>310にあるメリットは、結果であって目的ではないと思う、
と思えるようになった今日この頃w
315nobodyさん
2007/02/11(日) 02:42:25ID:??? オブジェ糞指向はうんこだな
人類は新しいパラダイムを発明してくてる天才を必要としている
人類は新しいパラダイムを発明してくてる天才を必要としている
316nobodyさん
2007/02/11(日) 05:00:24ID:??? オブジェクト指向はどう見ても最高だろ
317nobodyさん
2007/02/14(水) 02:12:06ID:??? PHPでは、結局、カプセル化、抽象化できる部分をクラスにして、
手続き型の部分から呼び出す方法に落ち着いた
MVCでいうと
Mをクラスで、Cを手続き型で、Vをテンプレートエンジンでやるというのが
わかりやすくてよいと思った。
ポリモーフィズムって、PHPで実現するのが面倒だと思うけど、どう?
手続き型の部分から呼び出す方法に落ち着いた
MVCでいうと
Mをクラスで、Cを手続き型で、Vをテンプレートエンジンでやるというのが
わかりやすくてよいと思った。
ポリモーフィズムって、PHPで実現するのが面倒だと思うけど、どう?
318nobodyさん
2007/02/19(月) 01:18:44ID:??? djangoでいうMVTだな。
319nobodyさん
2007/02/19(月) 01:29:05ID:??? >>314
>継承による拡張ばかり取り上げていて、カプセル化とか多態性の
>ことはあまり取り上げられてなかった希ガス。
そもそも4はメンバメソッド全てがパブリックなんで、
カプセル化の概念自体皆無。
説明しようにも、カプセル化の機能自体が無いので不可能。
>継承による拡張ばかり取り上げていて、カプセル化とか多態性の
>ことはあまり取り上げられてなかった希ガス。
そもそも4はメンバメソッド全てがパブリックなんで、
カプセル化の概念自体皆無。
説明しようにも、カプセル化の機能自体が無いので不可能。
320nobodyさん
2007/02/19(月) 03:34:31ID:??? >>319
言いたいことはわかるけど、概念自体皆無とか不可能ってのは言い過ぎじゃね?
そもそもオブジェクト指向ってオブジェクト単位で独立した存在にするだろ。
だから、カプセル化=独立 であって カプセル化=隠蔽 ではないと思う。
PEARもPrivateメソッドやフィールドは先頭にアンダーバー(_)をつけるなど、
コーディング規約で決めてるわけだし。
もちろん、規約であって言語仕様じゃないから、
簡単にアクセスできて崩壊してしまうがの。
言いたいことはわかるけど、概念自体皆無とか不可能ってのは言い過ぎじゃね?
そもそもオブジェクト指向ってオブジェクト単位で独立した存在にするだろ。
だから、カプセル化=独立 であって カプセル化=隠蔽 ではないと思う。
PEARもPrivateメソッドやフィールドは先頭にアンダーバー(_)をつけるなど、
コーディング規約で決めてるわけだし。
もちろん、規約であって言語仕様じゃないから、
簡単にアクセスできて崩壊してしまうがの。
321nobodyさん
2007/02/19(月) 03:48:01ID:??? カキコ後に読み直して
> カプセル化=隠蔽 ではない
は言い過ぎだったかな。
オブジェクトを独立させる為にカプセル化を行う。
隠蔽はカプセル化を厳密に行う手段(手法)ってことでどぉ。
> カプセル化=隠蔽 ではない
は言い過ぎだったかな。
オブジェクトを独立させる為にカプセル化を行う。
隠蔽はカプセル化を厳密に行う手段(手法)ってことでどぉ。
322nobodyさん
2007/02/20(火) 05:29:07ID:???323nobodyさん
2007/02/20(火) 05:34:26ID:???326nobodyさん
2007/02/20(火) 21:40:15ID:??? おk。次から挑戦してみる。
327nobodyさん
2007/02/20(火) 22:14:00ID:??? それぞれの型クラス作ればいいんじゃね?
328nobodyさん
2007/02/20(火) 22:33:04ID:??? と言いますと?
329nobodyさん
2007/02/21(水) 01:59:11ID:???330nobodyさん
2007/02/21(水) 02:19:36ID:??? type hintingでstringとかintも使えるようにすりゃいいのにな
そんなに難しくもなさそうだし
そんなに難しくもなさそうだし
331nobodyさん
2007/02/21(水) 02:53:14ID:??? phpのtype hintingはでstringとかintも使えるようにって話は時々話題になるけど、もし導入するとしたら、
function hoge(string s) {・・・
っていう定義の関数をhoge(12);で呼び出した場合、エラーにすべき?例外投げるべき?暗黙的にキャストすべき?
function hoge(string s) {・・・
っていう定義の関数をhoge(12);で呼び出した場合、エラーにすべき?例外投げるべき?暗黙的にキャストすべき?
332nobodyさん
2007/02/21(水) 05:54:57ID:??? わざわざtype hintingに記述する=厳格な型を要求してる
と考えられるから
事前にstringにキャストされてたらok
int等ならfatal errorじゃない?
と考えられるから
事前にstringにキャストされてたらok
int等ならfatal errorじゃない?
333nobodyさん
2007/02/21(水) 18:05:58ID:??? オブジェクト指向よくわからんから
とりあえずpearのDB呼んでみる。
とりあえずpearのDB呼んでみる。
336nobodyさん
2007/03/26(月) 00:50:31ID:yFIZR+Qo 例えば掲示板投稿処理で
入力処理
画像処理
ログ処理
表示処理
とかにクラスが分かれている場合、それぞれでオブジェクトを作成するの?
入力処理
画像処理
ログ処理
表示処理
とかにクラスが分かれている場合、それぞれでオブジェクトを作成するの?
337nobodyさん
2007/03/26(月) 02:17:48ID:??? ま、まぁそうしたければそうすればいいんじゃない?
338nobodyさん
2007/03/26(月) 17:48:59ID:yFIZR+Qo なにその突き放したレス
339nobodyさん
2007/03/27(火) 11:03:25ID:??? ままぁ、そうしたければそうすればいいんじゃない?
340nobodyさん
2007/03/27(火) 11:09:19ID:??? ままままぁ、そそうしたければね
341nobodyさん
2007/03/28(水) 04:38:55ID:??? オブジェクト指向っていうものは聞いて覚えるもんじゃない。
体で感じるんだ。
体で感じるんだ。
342nobodyさん
2007/03/28(水) 22:47:10ID:??? 2ch型掲示板を作る時はオブジェクト指向でやったなあ
343nobodyさん
2007/04/23(月) 00:54:16ID:+2ZNQJB1 「PHPによるデザインパターン入門」を始めてみた。
いきなりTemplate Method ではまった。
本の通りに打ち込んでるのに、クライアント呼んでも
画面が空白のままだ。
試しにクライアントの中で文字列出力をしてみると、
スクリプトの先頭では出力できるけど、require_once
以降ではechoしても出力できない。
var_dumpでnewしたオブジェクトを表示させようとしても
空白だ。
何だこの現象は。
いきなりTemplate Method ではまった。
本の通りに打ち込んでるのに、クライアント呼んでも
画面が空白のままだ。
試しにクライアントの中で文字列出力をしてみると、
スクリプトの先頭では出力できるけど、require_once
以降ではechoしても出力できない。
var_dumpでnewしたオブジェクトを表示させようとしても
空白だ。
何だこの現象は。
344nobodyさん
2007/04/23(月) 00:55:54ID:+2ZNQJB1 ちなみに、読むだけなら5章まで進んでるけど、オブジェクト指向を
軽いノリで始めるにはPHP5は結構いい感じに思えた。
軽いノリで始めるにはPHP5は結構いい感じに思えた。
345nobodyさん
2007/04/23(月) 11:54:30ID:???346nobodyさん
2007/04/23(月) 16:31:14ID:LAYu+KhN 出来るならワンタッチで、しかも「情報起業」に特化した
ホームページ作成ソフトがあったらいいのに・・・。
もし、プロ並みにキレイなホームページが作成が出来たとしたら、
情報商材で一旗あげようと思っているあなたの人生は変りますか?
【早くも成功者続出!】起業サイトビルダー
http://www.infotop.jp/click.php?aid=16484&iid=5683
ホームページ作成ソフトがあったらいいのに・・・。
もし、プロ並みにキレイなホームページが作成が出来たとしたら、
情報商材で一旗あげようと思っているあなたの人生は変りますか?
【早くも成功者続出!】起業サイトビルダー
http://www.infotop.jp/click.php?aid=16484&iid=5683
347343
2007/04/24(火) 00:02:00ID:yjQgQozI >>345
環境はPHP5.2.1 Apache2.0.59 WindpowsXP です。
error_reportingは E_ALL | E_STRICT っす。
だけど、HTML吐かれてるんだよね。で、そのHTMLソース見ると、
スクリプトに指定もしてないDOCTYPE宣言とか、METAタグとか、
空のBODYタグとか入るんだけど、これどういうときなるんだろ?
ちなみに、頭に叩きこうもと思って自分で打ち込んだやつ。
ダウンロードしたやつは動いた。違いといえば、require_once
のところを別の<?php ?>ブロックにしてないところだけど・・・。
環境はPHP5.2.1 Apache2.0.59 WindpowsXP です。
error_reportingは E_ALL | E_STRICT っす。
だけど、HTML吐かれてるんだよね。で、そのHTMLソース見ると、
スクリプトに指定もしてないDOCTYPE宣言とか、METAタグとか、
空のBODYタグとか入るんだけど、これどういうときなるんだろ?
ちなみに、頭に叩きこうもと思って自分で打ち込んだやつ。
ダウンロードしたやつは動いた。違いといえば、require_once
のところを別の<?php ?>ブロックにしてないところだけど・・・。
348nobodyさん
2007/04/24(火) 00:51:50ID:??? おそらくどっかでHTMLモードに入ってる
?>の後に空白とか入ってないか確かめてみ
?>の後に空白とか入ってないか確かめてみ
349nobodyさん
2007/04/24(火) 02:17:23ID:0JhT4MiQ ダンプ吐いて、地道に変数をトレースしか無いんじゃね。
ちなみに echoじゃなくて、var_dump()の方
ちなみに echoじゃなくて、var_dump()の方
350343
2007/04/24(火) 02:42:26ID:yjQgQozI351nobodyさん
2007/04/24(火) 11:01:21ID:??? PHPスクリプトファイルの文字コードは何で保存しているの?
UTF-8で保存しているなら、BOM無しのUTF-8Nで保存し直したら、空白が直るかもしれないよ。
UTF-8とUTF-8Nの違い=BOMについてはGoogleで検索して!
UTF-8で保存しているなら、BOM無しのUTF-8Nで保存し直したら、空白が直るかもしれないよ。
UTF-8とUTF-8Nの違い=BOMについてはGoogleで検索して!
352nobodyさん
2007/04/25(水) 23:24:32ID:B1ZZgxV3 折れもBOMには、ハマったよな
フリーのエディタの中には、デフォでBOMを付加する設定になっていたりする...
UTF-8のBOM付きでは、PHPは動かなかった!
フリーのエディタの中には、デフォでBOMを付加する設定になっていたりする...
UTF-8のBOM付きでは、PHPは動かなかった!
354nobodyさん
2007/04/27(金) 01:50:35ID:??? OOPで実装する時はJAVAとか統合環境がしっかりしてるほうが
分業の切り分けもしやすいと最近思った。
クラスが2、3個とか済む軽いのはPHPでさくっと実装するけど。
要件で言語指定がないとき、みんなの言語の選定基準って何?
分業の切り分けもしやすいと最近思った。
クラスが2、3個とか済む軽いのはPHPでさくっと実装するけど。
要件で言語指定がないとき、みんなの言語の選定基準って何?
355nobodyさん
2007/04/30(月) 20:32:09ID:??? BOMを処理できないPHPはウンコ
356nobodyさん
2007/05/03(木) 13:44:43ID:??? ウンコでも小便でも、
サクサク開発できるPHPは良い
サクサク開発できるPHPは良い
357nobodyさん
2007/06/05(火) 12:21:35ID:/w569Zaf あげとくか
358nobodyさん
2007/06/05(火) 16:24:00ID:???359nobodyさん
2008/06/19(木) 06:33:48ID:4gsKqLnV 私書箱システム(webでログインしてメッセージが読めるシステム)で、
・ユーザーAがユーザーBにメッセージを送る
・ユーザーBにメッセージ到着メールを送る
・システム管理人にメッセージ到着メールを送る
このとき、私書箱メッセージもメール形式でmail classから処理できるようにするとして、
mailオブジェクトを3つ作って処理って普通ですか?
・ユーザーAがユーザーBにメッセージを送る
・ユーザーBにメッセージ到着メールを送る
・システム管理人にメッセージ到着メールを送る
このとき、私書箱メッセージもメール形式でmail classから処理できるようにするとして、
mailオブジェクトを3つ作って処理って普通ですか?
360nobodyさん
2008/06/20(金) 09:01:44ID:RWxKmjHm 3つオブジェクト作ってもいいし、オブジェクト1つで宛先とか送信内容をタスクに合わせてその都度変更してから送信で良くないか?
どっちを採用してもおかしくないよ。
どっちを採用してもおかしくないよ。
361nobodyさん
2008/06/25(水) 04:06:12ID:???362nobodyさん
2008/06/25(水) 04:07:57ID:??? オブジェクト指向にあったロジックと
そうでないロジックが存在する
そうでないロジックが存在する
363nobodyさん
2008/06/29(日) 01:46:48ID:??? しかし何でPHP5は寸前のところでnamespaceをなくしてしまったのか。
クラス名をアンダーバーで繋げるという回避策は悲しすぎる。
唯一悔やまれる点だわ。
クラス名をアンダーバーで繋げるという回避策は悲しすぎる。
唯一悔やまれる点だわ。
364nobodyさん
2008/07/02(水) 02:00:54ID:??? クラス名をアンダーバーで繋げれば、
問題が解決するからじゃね?
問題が解決するからじゃね?
365nobodyさん
2008/07/03(木) 23:11:58ID:??? 遅延静的束縛がPHP5.3.0以降じゃないと使えないのが萎える。
あれがあればいろんなものをStaticなまま呼び出せるのにー。
あれがあればいろんなものをStaticなまま呼び出せるのにー。
366nobodyさん
2008/07/04(金) 04:53:13ID:zouluv3B 厨でスマソ
それってクラス名得る以外に使い道あるの?
それってクラス名得る以外に使い道あるの?
367nobodyさん
2008/07/04(金) 12:41:49ID:??? staticってか、 オブジェクト指向でいこうよ と厨房がいってみる。
368nobodyさん
2008/07/21(月) 01:17:35ID:gHzQi72i オブジェクト指向でつくったモジュールのなかにクラスが参照するサブルーチンを
書くのって、やはり負けですかね。なにがなんでもクラスとして記述した方がいい
でしょうか?
書くのって、やはり負けですかね。なにがなんでもクラスとして記述した方がいい
でしょうか?
370nobodyさん
2008/07/21(月) 15:54:45ID:Aaw/YKL1 >>368
クラスが参照するサブルーチンて書いてあるけど、ちょっと意味かわからない
クラスが参照するサブルーチンて書いてあるけど、ちょっと意味かわからない
371nobodyさん
2008/07/21(月) 16:12:59ID:gHzQi72i >>368 369
ええっとですね、hoge.pmないに、コンストラクタとクラスを書くのが
オブジェクト指向でのモジュールですが、その中のいくつかのクラスが
使い回せるサブルーチン(例えば、変数が英数かチェックするサブルーチン)
を書いておく、という感じです。
そうするといくつかのクラスの中で英数チェックを共通かできるので。
ただ、英数チェックなどそういうチェック部分だけをオブジェクト指向
モジュール化してという方法もありますが、いまいち、決めかねています。
一般的にはどういう感じでやっているのかなぁとアドバイスを求めた次第です。
ええっとですね、hoge.pmないに、コンストラクタとクラスを書くのが
オブジェクト指向でのモジュールですが、その中のいくつかのクラスが
使い回せるサブルーチン(例えば、変数が英数かチェックするサブルーチン)
を書いておく、という感じです。
そうするといくつかのクラスの中で英数チェックを共通かできるので。
ただ、英数チェックなどそういうチェック部分だけをオブジェクト指向
モジュール化してという方法もありますが、いまいち、決めかねています。
一般的にはどういう感じでやっているのかなぁとアドバイスを求めた次第です。
372nobodyさん
2008/07/21(月) 16:19:42ID:gHzQi72i ええっともっと簡単にいうと、hoge.pm(オブジェクト指向モジュール)の
中にある特定のクラスが処理として行なう共通な部分(たとえば英数半角チェック)
を抜き出して、それをサブルーチンとしてhoge.pmの中に記述して、クラスが
使うようにする(メインプログラムcgiが直接利用するのではない)、という
のは、手法としてはどうですか?
という意味です。オブジェクト指向でつくられたモジュール内のサブルーチンは
簡単にいってクラスとして書くけど、単なる英数半角チェックルーチンをサブルーチン
化した場合はそれはクラスというよりやっぱり単なるサブルーチンでしかない
ですよね?
いや、その半角英数チェックのサブルーチン内で処理後の変数をあらたに定義
すればその半角英数チェックのルーチンはクラスとしていってもいいとおもいますが。
中にある特定のクラスが処理として行なう共通な部分(たとえば英数半角チェック)
を抜き出して、それをサブルーチンとしてhoge.pmの中に記述して、クラスが
使うようにする(メインプログラムcgiが直接利用するのではない)、という
のは、手法としてはどうですか?
という意味です。オブジェクト指向でつくられたモジュール内のサブルーチンは
簡単にいってクラスとして書くけど、単なる英数半角チェックルーチンをサブルーチン
化した場合はそれはクラスというよりやっぱり単なるサブルーチンでしかない
ですよね?
いや、その半角英数チェックのサブルーチン内で処理後の変数をあらたに定義
すればその半角英数チェックのルーチンはクラスとしていってもいいとおもいますが。
373nobodyさん
2008/07/21(月) 19:17:33ID:??? それ、普通のPerlのパッケージの作り方だよ。
374nobodyさん
2008/07/22(火) 04:02:09ID:??? なんかしらんけど、FormValidator::Simple とかつかえばよくね。
375nobodyさん
2008/07/22(火) 23:13:02ID:??? あなたもアダルト動画サイトを運営しませんか?
動画検索ロボットが毎日動画を自動収集!!
アクセスアップ間違いなし。
もちろん海外のサーバーなので違法性も一切ありません。
完全無料!!いくらでも動画サイトを作成できます。
http://sxv.xgun.tv
▼mixiのトピックです。
http://mixi.jp/view_bbs.pl?id=33336111&comment_count=0&comm_id=326589
▼自分のmixiです。
http://mixi.jp/show_friend.pl?id=15652823
動画検索ロボットが毎日動画を自動収集!!
アクセスアップ間違いなし。
もちろん海外のサーバーなので違法性も一切ありません。
完全無料!!いくらでも動画サイトを作成できます。
http://sxv.xgun.tv
▼mixiのトピックです。
http://mixi.jp/view_bbs.pl?id=33336111&comment_count=0&comm_id=326589
▼自分のmixiです。
http://mixi.jp/show_friend.pl?id=15652823
376nobodyさん
2008/11/13(木) 09:58:56ID:??? オブジェクト指向って一言でいうとなんなんですかって後輩に聞かれた。
おま、一言でいえるかっての!
おま、一言でいえるかっての!
378nobodyさん
2008/11/13(木) 12:52:57ID:??? 関数付き変数=オブジェクト指向
379nobodyさん
2008/11/13(木) 17:13:17ID:??? Trapezoidクラス
upper 上底
lower 下底
height 高さ
それぞれのアクセッサ
コンストラクタで初期値を設定
面積を求めるメソッド calcArea()
現在のフィールド値を画面に表示するshow() メソッド
誰かおしえてください
upper 上底
lower 下底
height 高さ
それぞれのアクセッサ
コンストラクタで初期値を設定
面積を求めるメソッド calcArea()
現在のフィールド値を画面に表示するshow() メソッド
誰かおしえてください
380nobodyさん
2008/11/14(金) 02:19:47ID:beq8Chz/ 日本語でおk
381nobodyさん
2008/11/14(金) 02:42:17ID:s13+G+Dg web専用言語にOOPなぞいらん
382nobodyさん
2008/12/03(水) 08:17:46ID:RtCrzg9N なんかOOPでやると、
日ごとにincludeするファイルが増えていくような気がする
昔はファイル一枚あればいいだったのに
ってか、はっぱ隊とかウンナンとか10年ぶりぐらいに思い出したような
日ごとにincludeするファイルが増えていくような気がする
昔はファイル一枚あればいいだったのに
ってか、はっぱ隊とかウンナンとか10年ぶりぐらいに思い出したような
383nobodyさん
2008/12/04(木) 00:43:26ID:XlgDZGNX 保守age
384nobodyさん
2008/12/09(火) 15:36:44ID:??? PHPで学ぶデザパタとかいう本はいいものなの?
アマゾンンの読者レビューでは褒められてたけど。
アマゾンンの読者レビューでは褒められてたけど。
385nobodyさん
2008/12/09(火) 16:06:48ID:??? 読み手のレベル次第
386nobodyさん
2008/12/09(火) 16:33:10ID:??? オブジェクト指向初心者。
継承と多態の意味くらいが分かる。
継承と多態の意味くらいが分かる。
387nobodyさん
2008/12/12(金) 01:33:02ID:??? >>379こゆこと?
class Trapezoid
{
private upper ;
private lower ;
private height ;
function __construct( $u , $l , $h ) {
$this->upper = $u ;
$this->lower=$l;
$this->height=$h;
}
略
}
class Trapezoid
{
private upper ;
private lower ;
private height ;
function __construct( $u , $l , $h ) {
$this->upper = $u ;
$this->lower=$l;
$this->height=$h;
}
略
}
388nobodyさん
2008/12/12(金) 01:39:31ID:??? 宿題だろうに1ヵ月後に解答してあげるとかひどすw
389nobodyさん
2008/12/12(金) 01:59:29ID:???390nobodyさん
2009/01/01(木) 09:21:40ID:??? MVCに関する質問です。
利用者ごとにログインし、見た目をカスタマイズ出来るような仕組みを考えています。
で、ログイン状態やユーザー情報というのはModelに相当すると思うんですが、
見た目の情報はModelには入りませんよね。
そもそもViewの情報はどこで管理すべきなのか。
Viewで良いのか。だとして、ユーザー情報との同期はどうとれば良いのか。
分からないところだらけですが、よろしくお願いします。
利用者ごとにログインし、見た目をカスタマイズ出来るような仕組みを考えています。
で、ログイン状態やユーザー情報というのはModelに相当すると思うんですが、
見た目の情報はModelには入りませんよね。
そもそもViewの情報はどこで管理すべきなのか。
Viewで良いのか。だとして、ユーザー情報との同期はどうとれば良いのか。
分からないところだらけですが、よろしくお願いします。
391nobodyさん
2009/01/01(木) 09:22:32ID:??? 分かって無さすぎ
392nobodyさん
2009/01/01(木) 09:50:26ID:??? それは自分でも重々承知しているわけで、
だからこそ質問しているわけですが・・・
だからこそ質問しているわけですが・・・
393nobodyさん
2009/01/01(木) 09:59:06ID:??? ちゃんと基礎から勉強した方がいいよ
394nobodyさん
2009/01/02(金) 22:50:28ID:??? 質問できるレベルにさえ達していない。
前提知識がないから、回答する側も途方にくれてしまう。
入門書等でWEBアプリってどういう風に作るのか、大まかにつかんだ方がいいかも。
前提知識がないから、回答する側も途方にくれてしまう。
入門書等でWEBアプリってどういう風に作るのか、大まかにつかんだ方がいいかも。
395nobodyさん
2009/04/17(金) 23:34:39ID:??? フレームワークのチュートリアル見れ
396nobodyさん
2009/07/09(木) 01:01:48ID:qbvjwLD6 これって現行スレだったのかw
397nobodyさん
2009/10/23(金) 00:12:07ID:??? うわー オブジェクト重視っぽく書いていったらソースコードが500行余裕で超えた。
class hogeClassUnit extends dbConnectBase{
private var $name; // 以下20項目くらい
public function set_name($str){ // 受け取ったデータを加工したり精査したりでこれも20項目くらい
public function get_name(){ // クラスから取り出すだけ 以下20項目くらい
public function register(){ // ここまできて、登録とか何たらとかの処理を書き始める。
こういう風に細かくやるのが普通なのでしょうか?
単純なことが多いとはいえ、ずいぶんとソースコードが長い
class hogeClassUnit extends dbConnectBase{
private var $name; // 以下20項目くらい
public function set_name($str){ // 受け取ったデータを加工したり精査したりでこれも20項目くらい
public function get_name(){ // クラスから取り出すだけ 以下20項目くらい
public function register(){ // ここまできて、登録とか何たらとかの処理を書き始める。
こういう風に細かくやるのが普通なのでしょうか?
単純なことが多いとはいえ、ずいぶんとソースコードが長い
398nobodyさん
2009/10/23(金) 00:27:46ID:??? 律儀だなw
OOPの表面だけ真似るんじゃなくて本質を学んだほうがいいと思うぞ
OOPの表面だけ真似るんじゃなくて本質を学んだほうがいいと思うぞ
399nobodyさん
2009/10/23(金) 03:13:03ID:??? 粒度を上げるのだ
400age
2009/11/12(木) 11:26:43ID:FhD9csek class a {
function getA(){
{
return new b('hoge');
}
}
class b{
public $a;
protected $_z;
public function __construct($data)
{
$this->a = $data+$data;
$this->_z = $data;
}
}
上記のような、クラスがあって、aから、bが返されるのですが、bのprotected
のデータを取得したい場合はどうすればいいでしょうか。
たとえばbを継承したb'を作成し、zを取り出すメソッドを作っても、bのャCンスタンスを麹�ャしているのbヘ
aなのでb'のインスタンスは作られないですよね。
function getA(){
{
return new b('hoge');
}
}
class b{
public $a;
protected $_z;
public function __construct($data)
{
$this->a = $data+$data;
$this->_z = $data;
}
}
上記のような、クラスがあって、aから、bが返されるのですが、bのprotected
のデータを取得したい場合はどうすればいいでしょうか。
たとえばbを継承したb'を作成し、zを取り出すメソッドを作っても、bのャCンスタンスを麹�ャしているのbヘ
aなのでb'のインスタンスは作られないですよね。
401nobodyさん
2009/11/12(木) 11:44:55ID:??? よく分からんが
>たとえばbを継承したb'を作成し、zを取り出すメソッドを作っても、bのインスタンスを作成しているのは
>aなのでb'のインスタンスは作られないですよね。
aでb'のインスタンスを作るように変更すればいいのでは。
>上記のような、クラスがあって、aから、bが返されるのですが、bのprotected
>のデータを取得したい場合はどうすればいいでしょうか。
getZというメソッドを作るのはだめなの?
>たとえばbを継承したb'を作成し、zを取り出すメソッドを作っても、bのインスタンスを作成しているのは
>aなのでb'のインスタンスは作られないですよね。
aでb'のインスタンスを作るように変更すればいいのでは。
>上記のような、クラスがあって、aから、bが返されるのですが、bのprotected
>のデータを取得したい場合はどうすればいいでしょうか。
getZというメソッドを作るのはだめなの?
402nobodyさん
2009/11/12(木) 11:51:13ID:??? ああ何となく分かった、既存のaにもbにも手を加えたくないのか
変更しないで挙動を変えたいなら、それこそa'とb'を作ってメソッドをオーバーライドするしかないかと
変更しないで挙動を変えたいなら、それこそa'とb'を作ってメソッドをオーバーライドするしかないかと
403sage
2009/11/12(木) 14:29:44ID:FhD9csek やっぱりオーバーライドするしかないですか。
有難う。
有難う。
404nobodyさん
2010/05/13(木) 18:19:29ID:9BJiXr6f405nobodyさん
2010/05/15(土) 17:20:55ID:??? 治験ですね分かります
406nobodyさん
2010/05/23(日) 16:33:14ID:ReStOCg4 他のプロジェクトで作成したフレームワーク、クラス、抽象クラス、インターフェースを
再利用したも猛者はいるか?
再利用したも猛者はいるか?
409nobodyさん
2010/05/27(木) 12:15:02ID:??? ていうか再利用できない/しないフレームワークなんて嫌だな
410nobodyさん
2010/05/27(木) 20:21:31ID:P724q4SG javascriptでツールチップを作れっ!オブジェクト指向チックによろしく!
って言われたら、どのようなオブジェクトを作りますか?
って言われたら、どのようなオブジェクトを作りますか?
411nobodyさん
2010/05/28(金) 20:25:52ID:??? まず
クライアントサイドプログラムはWeb制作板へ
って言います
クライアントサイドプログラムはWeb制作板へ
って言います
2010/07/14(水) 20:35:40ID:???
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script>
//<!--
window.onload = function(){
kanako = createGirl('かなこ');
miku = createGirl('みく');
haruhi = createGirl('ハルヒ');
};
/*
* クローンを作成
*/
function createGirl( name )
{
var superClass = new girlClass();
var superClone = function(){};
superClone.prototype = superClass;
//これで他に影響ないクローン完成
var instanse = new superClone();
//いわゆるコンストラクタ
instanse.myName = name;
return instanse;
};
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script>
//<!--
window.onload = function(){
kanako = createGirl('かなこ');
miku = createGirl('みく');
haruhi = createGirl('ハルヒ');
};
/*
* クローンを作成
*/
function createGirl( name )
{
var superClass = new girlClass();
var superClone = function(){};
superClone.prototype = superClass;
//これで他に影響ないクローン完成
var instanse = new superClone();
//いわゆるコンストラクタ
instanse.myName = name;
return instanse;
};
2010/07/14(水) 20:36:21ID:???
/*
* おんにゃのこクラス定義
*/
function girlClass()
{
//プロパティ宣言
girlClass.prototype.myName = "";
//振る舞い
girlClass.prototype.writeMyName = function()
{
document.write("私は"+this.myName+"だよ。<br />");
};
}
//-->
</script>
</head>
<body>
<input type="button" value="Execute" onclick="onClickExecute()" />
<script type="text/javascript">
function onClickExecute()
{
//おんにゃのこに名前を言ってもらう。
kanako.writeMyName();
miku.writeMyName();
haruhi.writeMyName();
}
</script>
</body>
</html>
* おんにゃのこクラス定義
*/
function girlClass()
{
//プロパティ宣言
girlClass.prototype.myName = "";
//振る舞い
girlClass.prototype.writeMyName = function()
{
document.write("私は"+this.myName+"だよ。<br />");
};
}
//-->
</script>
</head>
<body>
<input type="button" value="Execute" onclick="onClickExecute()" />
<script type="text/javascript">
function onClickExecute()
{
//おんにゃのこに名前を言ってもらう。
kanako.writeMyName();
miku.writeMyName();
haruhi.writeMyName();
}
</script>
</body>
</html>
414nobodyさん
2010/07/15(木) 02:09:27ID:??? おっそうかそうか
415nobodyさん
2010/07/15(木) 04:17:09ID:hmDV/lDT416nobodyさん
2010/07/15(木) 13:49:38ID:??? オブジェクトなんちゃのサンプルの悪いところはそこなんだよな。
なんでそんなことしなくちゃいけないんだよってやつ。
なんでそんなことしなくちゃいけないんだよってやつ。
417nobodyさん
2010/07/15(木) 16:43:10ID:??? window.onload = function(){
kanako = new girlClass('かなこ','girlmessage');
miku = new girlClass('みく','girlmessage');
haruhi = new girlClass('ハルヒ','girlmessage');
};
function girlClass( name , target )
{
girlClass.prototype.myName = name;
girlClass.prototype.target = target;
って書いたら全員ハルヒになったぞ
kanako = new girlClass('かなこ','girlmessage');
miku = new girlClass('みく','girlmessage');
haruhi = new girlClass('ハルヒ','girlmessage');
};
function girlClass( name , target )
{
girlClass.prototype.myName = name;
girlClass.prototype.target = target;
って書いたら全員ハルヒになったぞ
418nobodyさん
2010/07/15(木) 16:49:47ID:??? そうか、プロトタイプとはそういう事ね
親クラスとして定義されている関数は触るなと。
了解した。
親クラスとして定義されている関数は触るなと。
了解した。
420nobodyさん
2010/07/15(木) 17:01:58ID:??? 誰か2回 new している説明をお願いします。
421nobodyさん
2010/07/15(木) 17:10:38ID:hmDV/lDT .
422nobodyさん
2010/07/15(木) 17:52:55ID:??? 残念だなあ。
君は何か勘違いしている様だけど、聞いて揚げ足取りをしたいんじゃなくて、
単純に君の意見が面白そうだから聞いてみたかっただけなんだよ。
もっとまともなレスを期待してたんだけど。ごめんね。
ちなみに君は揚げ足を取られる事を恐れているようだけど、それは違うと思う。
揚げ足を取られるのは、君に隙があるから。
隙だらけの人間ってのはそうやって余計な所でつまらない恥をかく事になるもんだよ。
他人につっこまれる事は、自身の知識をより客観的で多角的なものとする為に
有益な指針となるものだと思うな。
君は何か勘違いしている様だけど、聞いて揚げ足取りをしたいんじゃなくて、
単純に君の意見が面白そうだから聞いてみたかっただけなんだよ。
もっとまともなレスを期待してたんだけど。ごめんね。
ちなみに君は揚げ足を取られる事を恐れているようだけど、それは違うと思う。
揚げ足を取られるのは、君に隙があるから。
隙だらけの人間ってのはそうやって余計な所でつまらない恥をかく事になるもんだよ。
他人につっこまれる事は、自身の知識をより客観的で多角的なものとする為に
有益な指針となるものだと思うな。
423nobodyさん
2011/10/14(金) 13:22:35.87ID:oOJ5iuHv オブジェクト指向って単純にいうと
パラメーターと処理を
外部からひっかきますことができない思考ってことですか?
パラメーターと処理を
外部からひっかきますことができない思考ってことですか?
424nobodyさん
2011/10/14(金) 14:09:07.20ID:??? それは単なるカプセル化
425nobodyさん
2011/10/15(土) 08:06:59.53ID:WVUj974d パラメーターと処理を外部からひっかきますことができない思考 →カプセル化
CSSのカスケードみたいにカプセルを別のカプセルに引き継ぐ思考 →継承
?????? 思考 → ポリモーフィズム
CSSのカスケードみたいにカプセルを別のカプセルに引き継ぐ思考 →継承
?????? 思考 → ポリモーフィズム
426nobodyさん
2011/10/19(水) 11:59:18.77ID:PXmn+I34 オブジェクト指向のクラスの中身は、
手続き型の記述がカプセリングされて入ってる・・・
と思って間違いないですか?
手続き型の記述がカプセリングされて入ってる・・・
と思って間違いないですか?
427nobodyさん
2011/10/29(土) 05:40:27.70ID:??? 間違いです
428nobodyさん
2011/10/29(土) 11:06:32.36ID:??? 理由が無いので、信じません。
次。
次。
429nobodyさん
2011/12/09(金) 14:10:33.19ID:jzegoNJ7 ポリモーフィズムってなんですか?
継承元の親クラスが、なんなのか?によって、
同じ名前のクラスが 全く違う動きをする
みたいなかんじですか?
となると子クラスには、親クラスがこうの時はこう、
親クラスからこういうパラメータが取ってこれてたらこう
みたいな処理がかかれてるんですか?
継承元の親クラスが、なんなのか?によって、
同じ名前のクラスが 全く違う動きをする
みたいなかんじですか?
となると子クラスには、親クラスがこうの時はこう、
親クラスからこういうパラメータが取ってこれてたらこう
みたいな処理がかかれてるんですか?
431nobodyさん
2011/12/12(月) 20:11:59.00ID:??? >同じ名前のクラスが 全く違う動きをする
そんなことされたら困ります
そんなことされたら困ります
432nobodyさん
2013/02/14(木) 12:44:29.53ID:yCRXEb/V オブジェクト指向が良く分からないので質問。
例えば、部署を選択すると社員を一覧表示する機能を考えた場合、
社員テーブル(社員NO、社員名、部署NO)と部署テーブル(部署NO、部署名)を作成し、
単にSQLで一覧を取得すれば良いと思うけれど、オブジェクト指向では違うと認識。
そこで、「社員クラス」「部署クラス」「社員部署クラス」を作成。
社員クラス(社員NO、社員名、[社員コード、社員名を返すメソッド])
部署クラス(部署NO、部署名、[部署コード、部署名を返すメソッド])
社員部署クラス(社員NO、部署NO、[社員NO、部署NOを返すメソッド])
とりあえずテーブルも上記3テーブル。
また機能毎に「選択画面クラス」と「一覧表示クラス」を作成。
@選択画面クラス
1.部署クラスをnew
2.[部署コード、部署名を返すメソッド]で部署コード、部署名を取得
A一覧表示クラス
1.社員部署クラスをnew
2.選択画面で選ばれた部署コードをもとに[社員NO、部署NOを返すメソッド]で社員NOを取得
3.社員クラスをnew
4.[社員コード、社員名を返すメソッド]で社員コード、社員名を取得
これで考え方としてはあってますか?
部署コードを社員クラスに持たせるのは変?
例えば、部署を選択すると社員を一覧表示する機能を考えた場合、
社員テーブル(社員NO、社員名、部署NO)と部署テーブル(部署NO、部署名)を作成し、
単にSQLで一覧を取得すれば良いと思うけれど、オブジェクト指向では違うと認識。
そこで、「社員クラス」「部署クラス」「社員部署クラス」を作成。
社員クラス(社員NO、社員名、[社員コード、社員名を返すメソッド])
部署クラス(部署NO、部署名、[部署コード、部署名を返すメソッド])
社員部署クラス(社員NO、部署NO、[社員NO、部署NOを返すメソッド])
とりあえずテーブルも上記3テーブル。
また機能毎に「選択画面クラス」と「一覧表示クラス」を作成。
@選択画面クラス
1.部署クラスをnew
2.[部署コード、部署名を返すメソッド]で部署コード、部署名を取得
A一覧表示クラス
1.社員部署クラスをnew
2.選択画面で選ばれた部署コードをもとに[社員NO、部署NOを返すメソッド]で社員NOを取得
3.社員クラスをnew
4.[社員コード、社員名を返すメソッド]で社員コード、社員名を取得
これで考え方としてはあってますか?
部署コードを社員クラスに持たせるのは変?
433432
2013/02/14(木) 13:33:18.72ID:??? とりあえずはDBのことは忘れて考えればいいのか
明らかに勘違いしていることが分かった
明らかに勘違いしていることが分かった
435nobodyさん
2013/10/19(土) 11:41:11.05ID:??? 1秒でわかるオブジェクト指向
こりあん えくすてんど こっくろーち いんぷりめんと ないんせんちみーたーかのん
こりあん えくすてんど こっくろーち いんぷりめんと ないんせんちみーたーかのん
436nobodyさん
2015/10/06(火) 02:16:35.16ID:Z1aqUg5G 受ける会社大丈夫?
下記の条件が全て当てはまる会社にご注意下さい。
・IT系 in tokyo
・「社名 労基」でググると過去の2chスレが出てくる
・転職会議で2.5点
下記の条件が全て当てはまる会社にご注意下さい。
・IT系 in tokyo
・「社名 労基」でググると過去の2chスレが出てくる
・転職会議で2.5点
437nobodyさん
2016/06/05(日) 01:57:39.31ID:6HPQLJvt 過疎ってんなあ
438nobodyさん
2016/10/24(月) 11:27:29.75ID:??? 保守上げ
439nobodyさん
2016/12/22(木) 12:49:53.10ID:???440nobodyさん
2017/12/30(土) 13:45:47.56ID:YhlYw6jg 誰でも簡単にネットで稼げる方法など
参考までに、
⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。
グーグル検索⇒『半藤のブブイウイウレレ』
T8PRBRW3UD
参考までに、
⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。
グーグル検索⇒『半藤のブブイウイウレレ』
T8PRBRW3UD
441nobodyさん
2018/02/20(火) 04:56:54.42ID:??? ☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
442nobodyさん
2023/08/20(日) 22:07:02.94ID:??? プハァー ~~-v( =´o`=) 。o 〇 ○
レスを投稿する
ニュース
- 【W杯】韓国が大窮地 悪夢のシナリオ止まらず 決勝T進出順位ボーダーの8位に転落 セネガル、イランに抜かれる ★3 [尺アジ★]
- イラン、米軍基地を攻撃 [お断り★]
- 【サッカー】W杯の「日本VSブラジル」を他で例えると…Xで問いかけ話題「湘北vs山王」「明徳義塾vs大阪桐蔭」「ドトウvsオペラオー」★2 [o(^・-・^)o★]
- 【サッカー】「世紀の談合マッチになる予感」J組の一戦が話題…ドローで両チーム決勝T進出の“異例事態” [ゴアマガラ★]
- 【サッカー】「昔のネイマールでしょ」サッカー日本代表・塩貝健人がブラジル戦へ痛快発言…「王国」の印象を問われ [ゴアマガラ★]
- 【EV】 BYDの「快進撃」はインチキだった… 隠れ負債7兆円超 サプライヤーへの代金支払いを先延ばし ★2 [お断り★]
- 【実況】博衣こよりのえちえちパワプロWBC編🧪
- 経産省、アニメ会社MAPPAやゲーム会社DeNAに15億円の補助金。赤松健「ヒットした作品に後からお金をあげる政策が必要」 [485187932]
- 【高市解散】小野田担当大臣 記者だけでなく「司会者」にもキれ顔を見せていた X上ではバッシングの嵐に [169920436]
- 【悲報】高市に逆らったカルビー、消費者の購入意向激減。湖池屋を下回る… [342017262]
- 【悲報】防衛省、パランティア社AIを導入へ [834922174]
- 国立美術館やや博物館の自己収入額割合100%目標へ、ありがとう自民党 [469534301]