建设网站的好处和优点,新网站如何做seo推广,广告设计公司取名,seo营销软件背景
面向对象是抽象技术的一种实现#xff0c;将对象作为真实世界中实体的抽象#xff0c;代表了特定的一块密集而内聚的信息。在面向对象设计及实现中#xff0c;重点考虑的就是如何做到关注点分离。因为对象内的联系通常比对象间的联系更强。关注点分离就是将对象中高频…背景
面向对象是抽象技术的一种实现将对象作为真实世界中实体的抽象代表了特定的一块密集而内聚的信息。在面向对象设计及实现中重点考虑的就是如何做到关注点分离。因为对象内的联系通常比对象间的联系更强。关注点分离就是将对象中高频的动作(涉及对象的内部结构)和低频率的动作(涉及对象间的相互作用)分离出来。针对对象内部结构的设计原则这里也称为高内聚而针对对象间相互作用的设计原则这里也称为低耦合或松耦合。 高内聚、松耦合只是偏理论的原则那么在实际的面向对象的设计和实现过程中又该如何保证这个原则呢罗伯特·C·马丁在21世纪早期引入的记忆术首字母缩略字SOLID单一职责、开闭原则、里氏替换、接口隔离以及依赖反转指代了面向对象的五个基本原则。当这些原则被一起应用时它们使得一个程序员开发一个容易进行软件维护和扩展的系统变得更加可能。SOLID所包含的原则是通过引发编程者进行软件源代码的代码重构进行软件的代码异味清扫从而使得软件清晰可读以及可扩展时可以应用的指南。需要说明的是在实际的面向对象开发过程中开发者还会使用“迪米特法则”和“组合/聚合复用原则”。所以面向对象的基本原则一共有7个(SOLID 2)它们是(1) 单一职责原则(2) 开闭原则(3) 里氏替换原则(4) 接口隔离原则(5) 依赖倒置原则(6) 迪米特法则(7) 组合/聚合复用原则。
1. 单一职责原则Single Responsibility Principle
每一个类应该专注于做一件事情。在编码的过程中常使用“职责分离”思想来遵循该原则。
2. 开闭原则Open Close Principle
面向扩展开放面向修改关闭。该原则是一种编码追求过度的追求“开闭原则”会带来功能会系统的复杂性。
3. 里氏替换原则Liskov Substitution Principle
基类存在的地方都可使用子类替换。里氏代换原则的直接应用是多态动态绑定。
4. 接口隔离原则Interface Segregation Principle
应为客户端提供尽可能小的单独的接口而不是提供大的总的接口。该原则指明客户client应该不依赖于它不使用的方法。也是实现“高内聚”的方式之一。该原则也用于系统解耦方便系统重构。
5. 依赖倒置原则Dependency Inversion Principle
也称为“依赖倒置原则”“依赖反转原则”。该原则是指一种特定的解耦传统的依赖关系创建在高层次上而具体的策略设置则应用在低层次的模块上形式使得高层次的模块不依赖于低层次的模块的实现细节依赖关系被颠倒反转从而使得低层次模块依赖于高层次模块的需求抽象。该原则规定 1高层次的模块不应该依赖于低层次的模块两者都应该依赖于抽象接口。面向接口编程 2抽象接口不应该依赖于具体实现类的实例。而具体实现则应该依赖于抽象接口实现尽量依赖抽象不依赖具体实现
6. 迪米特法则Law Of Demeter
又叫“最少知识原则”一个软件实体应当尽可能少的与其他实体发生相互作用。这里将其称为“最小知道原则”该原则是实现松耦合Loose Coupling遵循的原则之一。
7. 组合/聚合复用原则Composite/Aggregate Reuse Principle, CARP
合成/聚合复用原则CARP也称为组合复用原则。该原则的语义化描述是尽量使用合成/聚合达到复用尽量少用继承。 注意该原则并不是银弹因为不能完全使用组合替换继承。只是在告知要慎用“继承”一旦使用继承就会带来“子类”和“父类”的紧耦合。实现方式在一个类中引用另一个类的对象。
总结
面向对象需要把握的核心原则是关注点分离。这一原则并不仅仅适用于面向对象设计与实现。进一步说实现关注点分离就是要做到高内聚和松耦合。在面向对象领域主要指以下七个原则(1) 单一职责原则(2) 开闭原则(3) 里氏替换原则(4) 接口隔离原则(5) 依赖倒置原则(6) 迪米特法则(7) 组合/聚合复用原则。 需要说明的是并不是说实现了上面的7点就是好的设计实际开发中要根据具体情况具体分析不可思维定式。
参考
《面向对象分析与设计》 Grady Booch, Robert A. Maskimchuk, Michael W. Engle, Bobbi J. Young, Jim Conallen, Kelli A. Houston 著 王海鹏, 潘加宇 译 https://en.wikipedia.org/wiki/Single_responsibility_principle Single Responsibility Principle https://en.wikipedia.org/wiki/Open–closed_principle Open Closed Principle https://en.wikipedia.org/wiki/Interface_segregation_principle Interface Segregation Principle https://en.wikipedia.org/wiki/Dependency_inversion_principle Dependency Inversion Principle https://en.wikipedia.org/wiki/Law_of_Demeter Law of Demeter https://en.wikipedia.org/wiki/Composition_over_inheritance Composition Over Inheritance