美文网首页
iOS-设计模式遵循的七大原则

iOS-设计模式遵循的七大原则

作者: 哈布福禄克 | 来源:发表于2019-09-26 18:14 被阅读0次

    1.单一职责原则:一个类只负责一件事

    理解:不同的类具备不同的职责,各司其职。做系统设计是,如果发现有一个类拥有了两种职责,那么就要问一个问题:可以将这个类分成两个类吗?如果真的有必要,那就分开,千万不要让一个类干的事情太多。

    总结:一个类只承担一个职责

    2.依赖倒置原则:抽象不该依赖于具体实现,具体实现可以依赖抽象

    理解:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。

    总结:面向接口编程,提取出事务的本质和共性。

    3.开闭原则:对修改关闭,对扩展开放

    理解:类、模块、函数,可以去扩展,但不要去修改。如果要修改代码,尽量用继承或组合的方式来扩展类的功能,而不是直接修改类的代码。当然,如果能保证对整个架构不会产生任何影响,那就没必要搞的那么复杂,直接改这个类吧。

    总结:对软件实体的改动,最好用扩展而非修改的方式。

    4.里氏替换原则:父类可以被子类无缝替换,且原有功能不受影响(例如:KVO)

    理解:一个对象在其出现的任何地方,都可以用子类实例做替换,并且不会导致程序的错误。换句话说,当子类可以在任意地方替换基类且软件功能不受影响时,这种继承关系的建模才是合理的。

    总结:子类可以扩展父类的方法,但不应该复写父类的方法。

    5.接口隔离原则:使用多个专门的协议、而不是一个庞大臃肿的协议(例如:UITableViewDelegate,UITableViewDataSource)

    理解:一个类实现的接口中,包含了它不需要的方法。将接口拆分成更小和更具体的接口,有助于解耦,从而更容易重构、更改。

    总结:对象不应被强迫依赖它不使用的方法。

    6.迪米特法则:一个对象应当对其他对象尽可能少的了解(高内聚、高耦合)

    理解:一个对象对另一个对象了解得越多,那么,它们之间的耦合性也就越强,当修改其中一个对象时,对另一个对象造成的影响也就越大。

    总结:一个对象应该对其他对象保持最少的了解,实现低耦合、高内聚。

    7.组合/聚合复用原则:

    理解:合成/聚合复用原则就是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分;新的对象通过向这些对象的委派达到复用已有功能的目的。它的设计原则是:要尽量使用合成/聚合,尽量不要使用继承。

    总结:就是说要少用继承,多用合成关系来实现。

    继承复用有一定的缺点:比如如果基类发生了改变,那么派生类的的实现就不得不发生改变;而且从超类继承而来的实现是静态的,不可能在运行时发生改变,因此它的灵活性差并最终会限制复用性。

    使用组合/聚合复用原则就解决了继承复用的缺点。

    原文地址

    相关文章

      网友评论

          本文标题:iOS-设计模式遵循的七大原则

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