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

第十二篇:Objective-C 知识回顾设计模式之一设计原则_第1张图片
设计模式大纲
第十二篇:Objective-C 知识回顾设计模式之一设计原则_第2张图片
六大设计原则

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 知识回顾设计模式之一设计原则)