孤独プログラマー譚

孤独死が近い。

2017-06-01から1ヶ月間の記事一覧

Ruby 委譲

Rubyの便利な委譲な仕組み。一つ目。Forwardableモジュール。 class Sony extend Forwardable def_delegators :@keyaki, :discord def initialize(keyaki) @keyaki = keyaki end end class Keyaki def discord print '僕は嫌だ!' end end sony = Sony.new(K…

Rubyでクロージャ

JavaScriptでよく見るクロージャを、Rubyでもやってみる。 JavaScript 関数スコープ ・内側から外側の変数は利用できる。 ・外側から内側の変数は利用できない。 Ruby ブロックスコープ ・内側から外側の変数は利用できる。 ・外側から内側の変数は利用でき…

Ruby Procを触る

引数にブロックを取る関数。 def doSomething(something, &toDo) toDo.call(something) end PHP = 無名関数 Ruby = ブロック という考え方で良いと思う。以下、do から end がブロック。 Rubyでは、ブロックも引数の一種に考えるイメージだろうか。 doSometh…

PHP Proxyパターンを楽に実装する

Proxyパターンは有用である。最近知ったから使ったことないけど。例えば、以下、RobotクラスとMissileクラス。 ロボットクラスは、ミサイルの発射をミサイルクラスに委譲している。 missile = new Missile(); } function launchMissile() { $this->missile->…

JavaScript ツリー構造はCompositeパターン

ツリー構造といえばあれだ。 営業部 ┗ 1課 ┗ 山田 ┗ 鈴木 ┗ 2課 ┗ 佐藤 みたいになってるやつ。デザインパターンには、このツリー構造をうまく処理できる「Compositeパターン」というものがある。だが、ツリー構造自体、扱う機会が特に無かったので、Compo…

JavaScript Decoratorパターン

Decoratorパターンの良いところは、 主体となるオブジェクトと、処理を委譲しているオブジェクトの間に、スッと割り込ませることが出来ること。 そして、その処理を委譲しているオブジェクトには、傷をつけなくて済む。Decoratorでラッピングするか否か、動…

ループの中のif文が現れたら、Observerパターンを検討する

やはり自分はObserverパターンを理解していなかった。Observerパターンは、多種多様な輩をループで回す時、真価を発揮する。以下、よく見るケース。JavaScriptで。 function Student(name, sex) { this.name = name this.sex = sex } var students = [ new S…