Swift 07 命令模式 Command Pattern

/*
大宏药业的制药机器有2个按钮,按钮A、按钮B。
机械操作员不需要知道具体的机械操作原理、只需要透过机器界面操作按钮。
机器有2个功能:包装药品、出货药品
把操作发送者和执行接受者的控件解耦、当新增功能、更改操作界面更容易。
*/

protocol Operation {
	func operate()
}

class Wrap : Operation {
	func operate() {
		print("Wrap product.")
	}
}

class Ship : Operation {
	func operate() {
		print("Ship product.")
	}
}

class Equipment {
	var p_stEquipmentName : String = ""
	var p_stMedicine : String = ""
	var p_mMedicNumber : Int = 0
	
	init(p_stInputEquipmentName : String) {
		p_stEquipmentName = p_stInputEquipmentName
	}
	
	func setEquipment(p_stInputEquipmentName : String) {
		p_stEquipmentName = p_stInputEquipmentName
	}
	
	func getEquipment() -> String {
		return p_stEquipmentName
	}
	
	func OperationMachine(p_obOperateCommand : Operation) {
		p_obOperateCommand.operate()
	}
}

var p_obWrapProduct = Wrap()
var p_obShipProduct = Ship()

var p_obEquipment = Equipment(p_stInputEquipmentName: "MedicineMachine")

p_obEquipment.OperationMachine(p_obOperateCommand: p_obWrapProduct)
p_obEquipment.OperationMachine(p_obOperateCommand: p_obShipProduct)

/*
Wrap product.
Ship product.
*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值