開発環境
- 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 コメント:
コメントを投稿