美文网首页iOS 开发 Objective-C
第十二篇:Objective-C 知识回顾设计模式之一设计原则

第十二篇:Objective-C 知识回顾设计模式之一设计原则

作者: 望穿秋水小作坊 | 来源:发表于2019-12-04 09:41 被阅读0次
    设计模式大纲 六大设计原则

    12.1.单一职责原则

    一个类只负责一件事情或者一类事情。比如 CALayer 专门负责动画和视图的展示,UIView 负责事件传递和事件相应。

    12.2.开闭原则

    对修改关闭、对扩展开放。比如我们有多种支付方式,如果我们把他们都写在一个 pay: 方法里面,用 if 做标记逻辑判断,那么我们每次新增一种支付方式,就得改写 pay: 方法,这样就扩展性差,新代码容易导致旧的代码出错。比较好的方式是,把各种 pay 方法分开来,比如 aliPay: wechatPay:,这样新增支付手段的时候,就只需要增加 xxxPay: 方法,这就是对修改关闭,对扩展开放的原则。

    12.3.里氏替换原则

    父类可以被子类无缝替换,且原有功能不受影响。回忆我们在 OC 特性里面说的到的 KVO,当我们调用 addObserver 的时候,系统会在动态运行时替我们生成一个子类,并且对于我们使用者来讲,使用的还是原有的类,原有功能的类并未受到任何影响,但实际上已经被系统悄无声息的换成了子类。所以说 KVO 不仅使用了观察者模式,还遵从了里式替换原则

    12.4.接口隔离原则

    使用多个专门的协议、而不是一个庞大臃肿的协议;协议中的方法应该尽量少。比如说我们常用的系统提供的 UITableView ,一个叫做 delegate 协议,一个叫做 dataSource 协议。

    12.5.依赖倒置原则

    抽象不应该依赖具体实现,具体实现可以依赖于抽象。比如说增删改查这些接口方法,所有的上层的业务调用,都应该依赖于你所定义的这种抽象的接口。而至于接口内部的具体实现,是用数据库也好,是用文件,是用 pList,以及用 UserDefault,对上层业务来说应该是感知不到的,这就体现了利用抽象接口反转依赖。

    12.6.迪米特法则

    一个对象应当对其他对象有尽可能少的了解。高内聚、低耦合。

    以上前面五中被称为面向对象设计中常用的 SOLID原则

    相关文章

      网友评论

        本文标题:第十二篇:Objective-C 知识回顾设计模式之一设计原则

        本文链接:https://www.haomeiwen.com/subject/depxgctx.html