Swift 03 建造者模式 Builder Pattern
来源:互联网 发布:公安局网络诈骗案 编辑:程序博客网 时间:2024/06/03 05:29
/*把统一复杂的工序、细分成不同的简单工序能够轻易增加、修改工序*/// 药品 复杂产品class MedicineProduct { var p_stName : String = "" var p_mNumber : Int = 0 var p_stPacking : String = "" var p_stExpiryDate : String = "" var p_stLocation : String = ""}// 生产员 抽象建造者class Builder {func buildName() { }func getProduct() -> MedicineProduct { return MedicineProduct()}}// 阿司匹林 具体建造者class AspirinProduct : Builder {override func buildName() {medicineProduct.p_stName = "Aspirin"medicineProduct.p_mNumber = 100medicineProduct.p_stPacking = "box" medicineProduct.p_stExpiryDate = "1 year" medicineProduct.p_stLocation = "ZhuHai"}override func getProduct() -> MedicineProduct { return medicineProduct} var medicineProduct = MedicineProduct()}// 阿司匹林 具体建造者class ParacetamolProduct : Builder {override func buildName() {medicineProduct.p_stName = "Paracetamol"medicineProduct.p_mNumber = 80medicineProduct.p_stPacking = "package" medicineProduct.p_stExpiryDate = "2 years" medicineProduct.p_stLocation = "ShanZhun"}override func getProduct() -> MedicineProduct { return medicineProduct} var medicineProduct = MedicineProduct()}// 装货员 指挥者class Managaer { var builder = Builder() func Construct(c_concreteBuilder : Builder) -> MedicineProduct { builder = c_concreteBuilder builder.buildName() return builder.getProduct() }}// 客戶端let managaer = Managaer()// 客戶只需要更改药物的建造者、即工厂类、就能完成不同工厂的复杂包装程序let product = managaer.Construct(c_concreteBuilder: AspirinProduct())print("Name: \(product.p_stName) Number: \(product.p_mNumber) Packing: \(product.p_stPacking) ExpiryDate: \(product.p_stExpiryDate) Location: \(product.p_stLocation)")let product2 = managaer.Construct(c_concreteBuilder: ParacetamolProduct())print("Name: \(product2.p_stName) Number: \(product2.p_mNumber) Packing: \(product2.p_stPacking) ExpiryDate: \(product2.p_stExpiryDate) Location: \(product2.p_stLocation)")
0 0
- Swift 03 建造者模式 Builder Pattern
- 建造者模式(Builder Pattern)
- 建造者模式(Builder Pattern)
- 建造者模式(Builder Pattern)
- 建造者模式【BUILDER PATTERN 】
- 建造者模式【Builder Pattern】
- 建造者模式(Builder Pattern)
- 建造者模式(Builder Pattern)
- 建造者模式(Builder Pattern)
- 建造者模式-Builder Pattern
- 建造者模式Builder Pattern
- 建造者模式Builder Pattern
- 建造者模式(Builder Pattern)
- Builder Pattern(建造者模式)
- 建造者模式【Builder Pattern】
- 建造者模式(Builder Pattern)
- 建造者模式【Builder Pattern】
- 建造者模式(Builder Pattern)
- 理顺下 linux下configure,make,make install的意义
- #1051 补提交卡
- Java求开n次方
- IDF凯撒加密
- for循环输出50到100之间的整数
- Swift 03 建造者模式 Builder Pattern
- Leetcode-24. Swap Nodes in Pairs
- Ubuntu15.10 使用手册 大量实用软件
- Javascript模块化编程(三):require.js的用法
- [从头学绘画] 第04节 身高
- c语言习题
- bootstrap 上传图片插件 file-input 的简单使用
- 5.0助手函数及与3.2版本的单字母函数对比
- Bootstrap的fileinput插件实现多文件上传的方法