六大设计基本原则

1.单一职责原则

定义:一个类只负责一件事

优点:类的复杂度降低,可读性增强,易维护,变更引起的风险降低

应用:系统提供的UIView和CALayer的关系:UIView负责时间传递、事件响应;CALayer负责动画及展示

2.开放-关闭原则

定义:对修改关闭,对扩展开放

-设计的类做好后就不再修改,如果有新的需求,通过新加类的方式来满足,而不去修改现有的类的代码

优点灵活(通过拓展一个功能模块即可实现功能的扩充,不需要修改内部代码),稳定(基本类不允许被修改,使得被破坏的程度大大降低)

使用:->我们可以把行为添加到协议中,使用时遵守这个协议即可

         ->添加类目(Category)方式创建

3.里氏替换原则

定义:所有引用父类的地方必须能透明地使用其子类的对象(通俗点说就是,父类可以被子类无缝替换,且原有功能不受任何影响)

优点:->代码共享,减少创建类的工作量,每个子类都拥有父类的所有属性和方法

         ->提高代码的可重用性,提高代码的可扩张性,提高产品或项目的开放性

缺点: ->继承是入侵性的,拥有父类的属性和方法,

          ->降低代码的灵活性,增强了对象间的耦合性

4.依赖倒置原则

定义:高层模块不应该依赖底层模块,二者都应该依赖于抽象;抽象不应该依赖细节,细节应该依赖抽象(核心思想是面向接口编程)

优点:代码结构清晰,维护容易

实例:平时我们使用protocol匿名对象模式就是依赖倒置原则的最好体现

5.接口隔离原则

定义:客户端不应该依赖它不需要的接口,一个类对另一个类的依赖应该建立在最小的接口上

定义包含三层含义:

->1.一个类对另一个类的依赖应该建立在最小的接口上

->2.一个接口代表一个角色,不应该将不同的角色都交给一个接口,因为这样可能会形成一个臃肿的大接口

->3.不应该强迫客户依赖它们从不用的方法

优点:解耦,增强可读性,可扩展性,可维护性

6.迪米特法则

定义:

->狭义的迪米特法则定义:也叫最少知识原则(LKP,Least Knowledge Principle)。如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中的一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用

->广义的迪米特法则定义:一个模块设计得好坏的一个重要的标志就是该模块在多大的程度上将自己的内部数据与实现有关的细节隐藏起来。信息的隐藏非常重要的原因在于,它可以使各个子系统之间脱耦,从而允许它们独立地被开发、优化、使用阅读以及修改

优点:->迪米特法则使对象之间的耦合降到最小,符合高内聚低耦合的特性,从而使得类具有很好的可读性和可维护性

迪米特法则应用: - 外观模式(Facade) - 中介者模式(Mediator) - 匿名对象

特点总结

单一职责原则主要说明:类的职责要单一

里氏替换原则强调:不要破坏继承体系

依赖倒置原则描述要:面向接口编程

接口隔离原则讲解:设计接口的时候要精简

迪米特法则告诉我们:要降低耦合

开闭原则讲述的是:对扩展开放,对修改关闭


----

你可能感兴趣的:(六大设计基本原则)