開発環境
- OS X Lion - Apple(OS)
- BBEdit - Bare Bones Software, Inc.(Text Editor)
- Script言語: Python
『初めてのPython 第3版』(Mark Lutz 著、夏目 大 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-393-7) のVI部(オブジェクト指向プログラミング)のまとめ演習7.(コンポジション)を解いてみる。
その他参考書籍
7.(コンポジション)
コード(BBEdit)
sample.py
#!/usr/bin/env python3.3 #-*- coding: utf-8 -*- class Lunch: def __init__(self): self.c = Customer() self.e = Employee() def order(self, foodName): self.c.placeOrder(foodName, self.e) def result(self): self.c.printFood() class Customer: def __init__(self): self.food = None def placeOrder(self, foodName, employee): self.food = employee.takeOrder(foodName) def printFood(self): print(self.food.foodName) class Employee: def takeOrder(self, foodName): return Food(foodName) class Food: def __init__(self, name): self.foodName = name if __name__ == '__main__': lunch = Lunch() lunch.order("burritos") lunch.result()
入出力結果(Terminal)
$ ./sample.py burritos $
ちなみにJavaScriptの場合。
コード(BBEdit)
function Lunch(){ var c = new Customer(); var e = new Employee(); this.order = function(foodName){ c.placeOrder(foodName, e); }; this.result = function(){ c.printFood(); }; } function Customer(){ var food = null; this.placeOrder = function(foodName, employee){ food = employee.takeOrder(foodName); }; this.printFood = function(){ $('#pre0').text(food.foodName); }; } function Employee(){}; Employee.prototype.takeOrder = function(foodName){ return new Food(foodName); }; function Food(name){ this.foodName = name; } var lunch = new Lunch(); lunch.order("burritos"); lunch.result();
0 コメント:
コメントを投稿