時間芸術としての天丼(190307)
本日の日報記です。
9時:
起床。
予約していたはずの炊飯器が動いてなくて、さめざめと泣く。
11時:
出社。
なんか粛々と作業してて、何やっていたか思い出せない。とりあえず進みはした。お昼にバナナを食べたことだけは鮮明に覚えている。
21時半:
帰宅。
予約していたはずの炊飯器が動いてなくて、何もかもが憎くなってしまった。買い替えるまでは予約しない。
22時半:
ベースを弾く。
割と最近生きるモチベになってるので音楽は偉大。
1時:
C#の練習。
こないだの自販機プログラムの呼び出し側を変えて、要件を満たす実装に少し手を付けた。利用者側から逆算してプログラム組むの、結構個人的にはグッドなソリューションのような気がする...(できた時の理想をうまく描ければ)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class VendingMachineSample : MonoBehaviour
{
public enum CompanyType
{
UNDEFINE,
COCACOLA,
ASAHI,
SUNTORY
}
public class VendingMachineFactory
{
public VendingMachine Create(CompanyType companyType)
{
switch(companyType)
{
case CompanyType.COCACOLA:
return new CocacolaVendingMachine();
case CompanyType.ASAHI:
return new AsahiVendingMachine();
case CompanyType.SUNTORY:
return new SuntoryVendingMachine();
default:
return new UndefineVendingMachine();
}
}
}
public abstract class VendingMachine
{
}
class CocacolaVendingMachine : VendingMachine
{
}
class AsahiVendingMachine : VendingMachine
{
}
class SuntoryVendingMachine : VendingMachine
{
}
class UndefineVendingMachine : VendingMachine
{
}
#region MonoBehaviourMessages
private void Start()
{
//各社の自販機たち
VendingMachineFactory vmFactory = new VendingMachineFactory();
VendingMachine cocacolaVM = vmFactory.Create(CompanyType.COCACOLA);
VendingMachine asahiVM = vmFactory.Create(CompanyType.ASAHI);
VendingMachine suntoryVM = vmFactory.Create(CompanyType.SUNTORY);
//各社の自販機の在庫
BeverageStockFactory bsFactory = new BeverageStockFactory();
BeverageStock cocacolaStock = bsFactory.Create(CompanyType.COCACOLA);
BeverageStock asahiStock = bsFactory.Create(CompanyType.ASAHI);
BeverageStock suntoryStock = bsFactory.Create(CompanyType.SUNTORY);
//在庫補充
cocacolaVM.Supply(cocacolaStock); //public void Supply(CocacolaStock s)
asahiVM.Supply(asahiStock); //public void Supply(AsahiStock s)
suntoryVM.Supply(suntoryStock); //public void Supply(SuntoryStock s)
//お金が投入されたので、購入可能な項目(お金・在庫が足りてる)を返す
AvailableList availableList = cocacolaVM.InsertedMoney(150);
//購入
Beverage BeveragePurcahsed = avalableList.Buy(3);
}
#endregion
}
明日もよろしくお願いします。