タグ

OOPに関するmatsutakegohan1のブックマーク (12)

  • JavaScriptのnewって本当にいらない子? - あと味

    先日、「JavaScriptのオブジェクトについて考察してみた - あと味」を書いてから、chikuraさんからコメントいただいたり、id:dankogaiさんから「404 Blog Not Found:javascript - にはクラスはない」という記事で言及いただいたり、JavaScript: The Good Partsを読み返したりした結果、newについて調べたいという衝動にかられましたので、その調べた結果を書いてみたいと思います。 newを調べようと思ったキッカケを整理 まずは、そのキッカケから整理します。 chikuraさんのコメントより 押さえるべきポイントは、new演算子の際に何が行われるか?だと思うので、こちらのページもぜひ読んでみてください。 JavaScript の new 演算子の意味: Days on the Moon http://nanto.asablo.j

    JavaScriptのnewって本当にいらない子? - あと味
  • perl - Class::Builtin 0.01 released - perlでもメソッドチェインを! : 404 Blog Not Found

    2009年06月21日19:00 カテゴリLightweight Languages perl - Class::Builtin 0.01 released - perlでもメソッドチェインを! リハビリをかねて作りました。 /lang/perl/Class-Builtin/trunk - CodeRepos::Share - Trac dankogai's p5-class-builtin at master - GitHub @CPAN (coming soon)こういうことが出来ます。 #!/usr/bin/perl -l use strict; use warnings; use Class::Builtin; binmode STDOUT, ':utf8'; my $so = OO('小飼弾'); print $so->length; print $so->decode_utf8

    perl - Class::Builtin 0.01 released - perlでもメソッドチェインを! : 404 Blog Not Found
  • Linus「C++ はひどい言語だ。これは、多くの平均以下のプログラマーが使ってるために さらに輪をかけてゲロゲロになっていて、どうしようもないゴミが 簡単に生産されるようになってる」

    /15 [4] (21:54) 原文: http://lwn.net/Articles/249460/ From: xxx To: xxx Subject: Re: [RFC] builin-mailinfo.c をマシな文字列ライブラリを使うようにすること Date: Thu, 6 Sep 2007 18:50:28 +0100 (BST) Message-ID: <alpine.LFD.0.999.0709061839510.5626@evo.linux-foundation.org> On Wed, 5 Sep 2007, Dmitry Kakurin wrote: > > Git のソースコードを最初に見たとき、ヘンだと思ったこと: > 1. C++ じゃなくてただの C を使ってる。理由は謎。移植性がどうとか言わないで、 > そんなのウソに決まってるから。 *あんた* のほうこそ

  • PHPによるオブジェクト指向の最適化:phpspot開発日誌

    Jaslabs Optimizing PHP objects The following tips can help in optimizing object-orientated PHP.PHPによるオブジェクト指向の最適化。 メモによると次のようなことが書かれている。 ・変数は使う前に初期化せよ ・グローバル変数を2回以上呼び出す場合はローカル変数にコピーせよ ・よく使うメソッドは派生クラス内に記述せよ (尚、PHPの言語仕様が変わることがあるのでこの事柄は永続的な物ではない) ・オブジェクトのメソッド呼び出しは普通の関数呼び出しの2倍遅い。 ・ローカル変数のインクリメントが最も速い( $var++) ・オブジェクト変数のインクリメント($this->val)はローカル変数のインクリメントより3倍遅い ・初期化されていない変数のインクリメントは初期化されているものより9〜10倍遅い な

  • 404 Blog Not Found:perl - 万能なnewの書き方

    2007年04月23日22:45 カテゴリLightweight Languages perl - 万能なnewの書き方 Perl 5のOOは、慣れてしまうと簡単だ。 継承とか考えずに、普通にクラスを作りたければ、必要なのは以下の二行だけ。 package Klass; sub new { bless {} }; これだけでは何もできないので、とりあえずnameというアクセサーを追加してみる。これだけ。 sub name { my $self = shift; $self->{name} = shift if @_; return $self->{name}; } しかし、上の形式だと、継承をサポートしていない。だから、 package Klass; sub new { bless {} }; package Klass::Sub; our @ISA = qw/Klass/; # new

    404 Blog Not Found:perl - 万能なnewの書き方
  • naoyaのはてなダイアリー - Perl のクロージャ

    いつもお世話になってるあの人とかあの人とかが山口家の逆襲->perl-解説->クロージャというクロージャの解説ページをブックマークしてるのをきっかけに、 Perl のクロージャについて自分もちゃんと理解できてるのかというのを考えてみましたが、どうも微妙です。 クロージャについて、何でいまいち理解しきれてない感じがあるのかというと、クロージャがどういうものであるかは知ってるけど、クロージャをどういう時に使うと良いのかが具体的にあれとこれという感じで思い付かないからなのではないかと思った。 なので、Perl でクロージャを使ってる実装とかを見て、どんなときに使われるものなのかをリストアップして理解を深めてみよう..のコーナーです。 クラスにデータを保持するためのクロージャ 僕がぱっと思いついたのは Class::DBI の中で使われている Ima::DBI におけるデータベースハンドラのキャッ

    naoyaのはてなダイアリー - Perl のクロージャ
  • クロージャによるOOP - Tociyuki::Diary

    ふと思いついて試してみたのですが、Perlでもクロージャを使ったOOPを扱えるみたいです。たぶん既出なのだろうと思いますが、見つけきれなかったのでエントリーを打ってみます。 例1. UP/DOWNカウンタ sub Counter::new { my $this = {}; $this->{class} = shift; my( $value, $step ) = ( 0, 1 ); $this->{step} = sub { $step = shift if @_ > 0; $step }; $this->{value} = sub { $value = shift if @_ > 0; $value }; $this->{up} = sub { $value += $step }; $this; } my $c1 = Counter->new(); $c1->{value}->(10);

    クロージャによるOOP - Tociyuki::Diary
  • Perlでオブジェクトを書くときに必要なClass::Accessor とは | ブログが続かないわけ

    SQLAlchemy Database Engines 日記。 (TokuLog) - Class::Accessor は言語の機能としてつけるべきだったよね このエントリの中に次のようなくだりがある。「Perl で書かれたオブジェクトのほとんどって、この2つを継承しているものね。」 最近話題のPerlの学習コストの話とも多少関係があるのだが、PerlではCPANの使いこなしってのが重要なのだ。そこで、Class::Accessor とはどういうものか簡単に説明しよう。 基的には perldoc Class::Accessor perldoc -m Class::Accessor としてもらえばいいのだけれども、もう少し簡単に解説してみる。 (ホントは自分用の備忘録なのだが) オブジェクト指向そのものの話は割愛させてもらいましょう。オブジェクト指向ではメンバ変数に直接アクセスするのは「悪

    Perlでオブジェクトを書くときに必要なClass::Accessor とは | ブログが続かないわけ
    matsutakegohan1
    matsutakegohan1 2008/06/30
    getterとsetterを自動的に作ってくれる!ステキ!
  • - デザインパターンによる進化的設計

    このプログラムでは全体の処理の流れが決まっています. その中で,youGotMailPopup()の部分のみの動作が変更できることが望まれています. ここで利用できるパターンを考えてみます.振舞に分類されるパターンのなか で,TemplateMethod と呼ばれるパターンがあります.GoFを参照すると, TemplateMethod 目的: 1つのオペレーションにアルゴリズムのスケルトンを定義しておき,そ の中のいくつかのステップについてはサブクラスでの定義に任せることにする. TemplateMethodパターンでは,アルゴリズムの構造を変えずに,アルゴリズ ムの中のあるステップをサブクラスで再定義する. とあります.今回の例では,全体の処理の流れを規定するrun()メソッドが上 記の「スケルトン」に当たります.また,youGotMailPopup()が「いくつかの ステップ」に当ては

  • 【 ほでなすPHP 】 PHP5の基本

    続・PHPの基::PHP5の基 PHP4からPHP5になって、クラス・オブジェクト関係の仕様が大きく変更・機能強化され、また「例外処理」その他の機能が追加されました。 このページは「PHPの基PHP4対応のPHP講座)」のページの続編(PHP5の基編)です。このページでは、PHP5で変更・追加された各種機能について解説しています。 目次 オブジェクトの代入 【clone()命令】 メンバのアクセス制限 【public、protected、private】 スタティックメンバ/クラス定数 【::演算子、static、self、parent、const】 コンストラクタとデストラクタ 【__construct()、__destruct()】 特殊メソッド/オートロード 【__*()メソッド、__autoload()関数】 オブジェクト引数のクラス指定 例外処理 【try、thro

  • JavaScript Tips & Technique

    操作方法 → キー: 次のページへ ← キー: 前のページへ ↑ キー: 目次ページへ ↓ キー: 目次ページから戻る 目次ページでは ← → キーで一覧を移動し、クリックで選択します 10 年。 世界が JavaScript の真の実力を発見するのに要した時間である。 1995 年、Netscape 社の Brendan Eich により開発・設計された JavaScript は、「世界で最も誤解されたプログラミング言語」などと呼ばれもした、 ともすれば不遇とすらいい得る歳月を経て、あたりのそこここに満ち充ちていた「Web の旧来的なインタラクションの窮屈さを革命したい」という思いによって、ふたたび表舞台に招来された。 JavaScript は、Web の「あちら側」と「こちら側」とを取り結ぶ、もっとも古くてもっとも新しい、そして、もっとも重要な技術だ。次の 10 年を自らの手で創り出す

  • 静的オブジェクト指向は設計者が苦労を背負込むシステム

    2009-09-26 北陸Scala第1回開催 2009-04-04 第十四回java-ja勉強会 - 第1回チキチキ 地方巡業withひがやすを飲み会in富山開催 2009-03-20 わんくま大阪勉強会#28 「ジェネリクスを使おう!」 2008-11-08 わんくま富山勉強会#1 開催 2008-08-09 わんくま東京勉強会#23 「C#登場前夜」 2008-04-01 *で始まるタイトルはエイプリルフールネタです 2008-01-26 わんくま東京勉強会#16 「ライブプログラミング」 2007-12-08 わんくま名古屋勉強会#1 「わんくま初めてのJava」 2007-07-28 開店 みねこあさんのところで挙がっていた、 静的オブジェクト指向と動的オブジェクト指向の軽さについての話題から。 Javaは経済的事情をうまく捉えて普及した プログラミングの効率と経済で書いていると

  • 1