/*
纪录大宏药业机器的操作日志。
药物:Aspirin、Paracetamol
工作:Wrap、Ship
操作员也返回看各个工作的纪录。
*/
// 原发器
class Mechanic {
var p_mOperaNumber : Int = 0
var p_stMedicineName : String = ""
var p_stEquipOperation : String = ""
func setOperaNumber(p_mInputOperaNum : Int) {
p_mOperaNumber = p_mInputOperaNum
}
func getOperaNumber() -> Int {
return p_mOperaNumber
}
func setMedicineName(p_stInputMediName : String) {
p_stMedicineName = p_stInputMediName
}
func getMedicineName() -> String {
return p_stMedicineName
}
func setEquipOperation(p_stInputEquipOper : String) {
p_stEquipOperation = p_stInputEquipOper
}
func getEquipOperation() -> String {
return p_stEquipOperation
}
func saveEquipMemento() -> EquipMemento {
return EquipMemento(p_mInputOperaNum : p_mOperaNumber, p_stInputMediName : p_stMedicineName, p_stInputEquipOper : p_stEquipOperation)
}
func getEquipMemento(p_obEquipMemento : EquipMemento) -> EquipMemento {
return p_obEquipMemento
}
}
// 备忘录 多个备忘录物件 储存在阵列 提取阵列就可以有备忘录功能
class EquipMemento {
var p_mOperaNumber : Int = 0
var p_stMedicineName : String = ""
var p_stEquipOperation : String = ""
init(p_mInputOperaNum : Int, p_stInputMediName : String, p_stInputEquipOper : String) {
p_mOperaNumber = p_mInputOperaNum
p_stMedicineName = p_stInputMediName
p_stEquipOperation = p_stInputEquipOper
}
func setOperaNumber(p_mInputOperaNum : Int) {
p_mOperaNumber = p_mInputOperaNum
}
func getOperaNumber() -> Int {
return p_mOperaNumber
}
func setMedicineName(p_stInputMediName : String) {
p_stMedicineName = p_stInputMediName
}
func getMedicineName() -> String {
return p_stMedicineName
}
func setEquipOperation(p_stInputEquipOper : String) {
p_stEquipOperation = p_stInputEquipOper
}
func getEquipOperation() -> String {
return p_stEquipOperation
}
}
// 负责人
class OperationTaken {
var p_arrEquipMemento : [EquipMemento] = []
func addMemento (p_obMementoItem : EquipMemento) {
p_arrEquipMemento.append(p_obMementoItem)
}
func getMemento(p_mInputOperaNum : Int) -> EquipMemento {
return p_arrEquipMemento[p_mInputOperaNum]
}
}
// 客戶端
var mechanic = Mechanic()
var operationTaken = OperationTaken()
mechanic.setOperaNumber(p_mInputOperaNum : 1)
mechanic.setMedicineName(p_stInputMediName : "Aspirin")
mechanic.setEquipOperation(p_stInputEquipOper : "Wrap Product")
operationTaken.addMemento(p_obMementoItem : mechanic.saveEquipMemento())
mechanic.setOperaNumber(p_mInputOperaNum : 2)
mechanic.setMedicineName(p_stInputMediName : "Paracetamol")
mechanic.setEquipOperation(p_stInputEquipOper : "Ship Product")
operationTaken.addMemento(p_obMementoItem : mechanic.saveEquipMemento())
print("Current Memento: Number:\(mechanic.getOperaNumber()) Name: \(mechanic.getMedicineName()) Operation: \(mechanic.getEquipOperation())")
var previousMemento = operationTaken.getMemento(p_mInputOperaNum : 0)
print("Previous Memento: Number:\(previousMemento.getOperaNumber()) Name: \(previousMemento.getMedicineName()) Operation: \(previousMemento.getEquipOperation())")
/*
Current Memento: Number:2 Name: Paracetamol Operation: Ship Product
Previous Memento: Number:1 Name: Aspirin Operation: Wrap Product
*/