
设计模式 Design pattern
文章平均质量分 74
KK匡
我是设计师、也是程序员。左手会编程、右手会设计。
展开
-
Swift 02 抽象工厂模式 Abstract Factory Pattern
/* 厂商现在有阿司匹林和扑热息痛生产线。 现在厂商想生产1mg*10s装、1mg*20s装的阿司匹林和扑热息痛。 */ // 抽象產品 protocol MedicineProduct { func getProduct(p_stName: String, p_stFormula: String) -> String } // 產品 1mg*10s装 class OneMgTenPr原创 2016-07-30 22:44:32 · 350 阅读 · 0 评论 -
Swift 09 适配器模式 Adapter pattern
/* 大宏药业的药动学部门算法库里、有零級消除动力学和一级消除动力学 +药动学算法库接囗 零級消除动力学():zero-order elimination kinetics 一级消除动力学():first-order elimination kinetics 现在药理学部门有一套药理学建模系统、需要用到消除动力学算法。 可药理学建模系统不能直接使用动力学算法库接囗。 因此要使用适配器模式来使用原创 2016-10-02 16:11:32 · 869 阅读 · 0 评论 -
Swift 08 备忘录模式 Memento Pattern
/* 纪录大宏药业机器的操作日志。 药物:Aspirin、Paracetamol 工作:Wrap、Ship 操作员也返回看各个工作的纪录。 */ // 原发器 class Mechanic { var p_mOperaNumber : Int = 0 var p_stMedicineName : String = "" var p_stEquipOperation : String = "原创 2016-10-02 16:10:07 · 400 阅读 · 0 评论 -
Swift 07 命令模式 Command Pattern
/* 大宏药业的制药机器有2个按钮,按钮A、按钮B。 机械操作员不需要知道具体的机械操作原理、只需要透过机器界面操作按钮。 机器有2个功能:包装药品、出货药品 把操作发送者和执行接受者的控件解耦、当新增功能、更改操作界面更容易。 */ protocol Operation { func operate() } class Wrap : Operation { func operate()原创 2016-10-02 16:08:16 · 269 阅读 · 0 评论 -
Swift 06 职责链模式 Chain of Responsibility
/* 大宏药业管理层 行政总裁 卡卡: 审批3万元以下订单 经理 路飞:审批2万元以下订单 主任 白云:审批1万元以下订单 代码有错误、不能运行 */ class RequestOrder { var p_doAmount : Double = 0.0 var p_mOrderNum : Int = 0 var p_stProductOrder : String = "" ini原创 2016-10-02 16:06:31 · 486 阅读 · 0 评论 -
Swift 05 策略模式 Strategy Pattern
/* 大宏药业门市售卖阿司匹林和扑热息痛商品。 学生享有95折优惠。 老人享有85折优惠。 VIP享有7折优惠。 把计算优惠控件、和选择哪种优惠控件进行解耦。 当增加新年优惠时、只需针对优惠控件编程即可。 */ class Store { var p_doPrice : Double = 0.0 var discount = Discount() func setPrice (p原创 2016-10-02 16:04:59 · 481 阅读 · 0 评论 -
Swift 04 观察者模式 Observer Pattern
/* 现在公司有3个理货员、分别处理阿司匹林、扑热息痛和抗组胺药。 当需要出货时、3人会通知大家、一起出货。 在不新增新线程、3人都不需要有对方资料、不需要持有特别广播的通讯控件的情况下、也能通知大家。 公司:大宏药业生产部 职员: 卡卡、阿司匹林 路飞、扑热息痛 白云:抗组胺药 动作: 出货(药名 : 药品) */ // 抽象觀察者 class Observer { var p_stN原创 2016-10-02 16:03:14 · 299 阅读 · 0 评论 -
Swift 03 建造者模式 Builder Pattern
/* 把统一复杂的工序、细分成不同的简单工序 能够轻易增加、修改工序 */ // 药品 复杂产品 class MedicineProduct { var p_stName : String = "" var p_mNumber : Int = 0 var p_stPacking : String = "" var p_stExpiryDate : String =原创 2016-10-02 12:18:59 · 578 阅读 · 0 评论 -
Swift 01 工厂方法模式 Factory method pattern
/* 工厂方法模式 - 创建物件 厂商现有Aspirin的生产线、若想添加Paracetamol生产线、就能用工厂方法模式。 Aspirin和Paracetamol有各自的物件、抽像物件、工厂、抽象工厂。 在不修改原有程序下增加物件。 Java是用interface和implement来表达物件、抽像物件的关系。 Swift是用protocol和继承来表达物件、抽像物件的关系。 */原创 2016-07-30 16:48:53 · 433 阅读 · 0 评论 -
Swift 10 组合模式 Composite Pattern
/* 大宏药业有阿司匹林和扑热息痛生产部门。 对於老板、他只需要指示生产药品就行。 组合模式能各控件解耦、假如想增加抗组胺药生产部门、只需增加此部门即可。 */ class MedicineProduct { func addOrder(p_obMedicOrder : MedicineProduct) { } func removeOrder(p_mOrderNum : Int) { }原创 2016-10-02 16:12:25 · 490 阅读 · 0 评论