2013年1月9日水曜日

開発環境

『初めての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 コメント:

コメントを投稿