大话设计模式读书笔记-装饰模式

#######大话设计模式的例子都是用C#写的,对于熟悉其他语言的开发者来说,看起来可能不是那么的方便。为了加深理解,我在学习策略模式的时候顺便用OC和swift把书中的例子实现了,分享出来,希望对大家能有帮助。欢迎拍砖。。。。。。
swift代码:
Person类:

import UIKit
class PersonSwift: NSObject {
        var name:NSString = ""
        func show(){
              print("show is---\(name).")
        }
}

Finery装饰类:

import UIKit
class FinerySwift: PersonSwift {
        var per:PersonSwift?
        override func show() {
                if(per != nil){
                      per?.show()
                }
         }
}

TShirts具体的衣服类:

import UIKit
class TShirtsSwift: FinerySwift {
        override func show() {
                print("big TShirts")
                super.show()
        }
}

实现:

import UIKit
class ViewController: UIViewController {
        var per:PersonSwift = PersonSwift()
        var ts:TShirtsSwift = TShirtsSwift()
        override func viewDidLoad() {
                super.viewDidLoad()
                per.name = "xiao cai"
                ts.per = per
                ts.show()
        }

        override func didReceiveMemoryWarning() {
                super.didReceiveMemoryWarning()
        }
}

OC比较好实现就不写在这了,有需要可以去github上下载:https://github.com/Joanwq/Design-pattern 下载

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,269评论 4 61
  • keaidelele阅读 539评论 0 49
  • 不知道从何时起,满大街都可以看见各种乌鱼庄。在这湿冷的冬夜,和朋友一起吃点鱼肉喝口鱼汤,却也是一件幸事。但吃过无数...
    味博士阅读 659评论 3 2
  • 前天布置了一个作业,就是过去式ed的三种读法,我是根据他的前三天教我的,错了好多,他留一手,有声音跟没声音,像b...
    不晓得rita阅读 291评论 0 0
  • 人这一辈子,一定要去卢浮宫看看世界名画。 为着这个计划,今年去学习了绘画。 现在回想起来。,绘画是我做梦都从来没有...
    谭皓匀阅读 148评论 0 0