/*
大宏药业的制药机器有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.
*/
Swift 07 命令模式 Command Pattern
最新推荐文章于 2025-11-27 09:51:28 发布
本文介绍了一种用于大宏药业的制药机器操作模式,该模式通过定义包装药品和出货药品两个操作来实现机械控制的解耦。操作员只需使用按钮进行交互,无需了解内部工作原理。

225

被折叠的 条评论
为什么被折叠?



