设计模式 Design pattern
文章平均质量分 75
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 · 325 阅读 · 0 评论 -
Swift 09 适配器模式 Adapter pattern
/*大宏药业的药动学部门算法库里、有零級消除动力学和一级消除动力学+药动学算法库接囗零級消除动力学():zero-order elimination kinetics一级消除动力学():first-order elimination kinetics现在药理学部门有一套药理学建模系统、需要用到消除动力学算法。可药理学建模系统不能直接使用动力学算法库接囗。因此要使用适配器模式来使用原创 2016-10-02 16:11:32 · 828 阅读 · 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 · 368 阅读 · 0 评论 -
Swift 07 命令模式 Command Pattern
/*大宏药业的制药机器有2个按钮,按钮A、按钮B。机械操作员不需要知道具体的机械操作原理、只需要透过机器界面操作按钮。机器有2个功能:包装药品、出货药品把操作发送者和执行接受者的控件解耦、当新增功能、更改操作界面更容易。*/protocol Operation { func operate()}class Wrap : Operation { func operate()原创 2016-10-02 16:08:16 · 247 阅读 · 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 · 454 阅读 · 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 · 445 阅读 · 0 评论 -
Swift 04 观察者模式 Observer Pattern
/*现在公司有3个理货员、分别处理阿司匹林、扑热息痛和抗组胺药。当需要出货时、3人会通知大家、一起出货。在不新增新线程、3人都不需要有对方资料、不需要持有特别广播的通讯控件的情况下、也能通知大家。公司:大宏药业生产部职员:卡卡、阿司匹林路飞、扑热息痛白云:抗组胺药动作:出货(药名 : 药品)*/// 抽象觀察者class Observer { var p_stN原创 2016-10-02 16:03:14 · 278 阅读 · 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 · 545 阅读 · 0 评论 -
Swift 01 工厂方法模式 Factory method pattern
/*工厂方法模式 - 创建物件厂商现有Aspirin的生产线、若想添加Paracetamol生产线、就能用工厂方法模式。Aspirin和Paracetamol有各自的物件、抽像物件、工厂、抽象工厂。在不修改原有程序下增加物件。Java是用interface和implement来表达物件、抽像物件的关系。Swift是用protocol和继承来表达物件、抽像物件的关系。*/原创 2016-07-30 16:48:53 · 411 阅读 · 0 评论 -
Swift 10 组合模式 Composite Pattern
/*大宏药业有阿司匹林和扑热息痛生产部门。对於老板、他只需要指示生产药品就行。组合模式能各控件解耦、假如想增加抗组胺药生产部门、只需增加此部门即可。*/class MedicineProduct { func addOrder(p_obMedicOrder : MedicineProduct) { } func removeOrder(p_mOrderNum : Int) { }原创 2016-10-02 16:12:25 · 460 阅读 · 0 评论