博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
擎天哥as3教程系列第五回——面向对象设计原则融汇贯通
阅读量:4105 次
发布时间:2019-05-25

本文共 1228 字,大约阅读时间需要 4 分钟。

OOD是面向对象设计。一个好的应用一定要有一个好的设计。

下面对面向对象设计原则有的是我自己的理解,有的是在网上粘贴的。

  单一职责原则

“就一个类而言,应该只专注做一件事和仅有一个引起变化的原因。“这就是单一职责原则

此原则,是为了保证对象的高内聚,,最大程度的复用。

一个对象有太多的职责的时候,如果两外一个对象需要某一职责,就不得不把这个对象全不包含进来,这就造成了代码浪费。如果都分成单一职责,如果我们需要组合一些职能的时候,只需把他们包含进来就ok了,保证了高扩展性,这就保证了高内聚。同时又降低了类与类之间的耦合度,保证了低粒度。

单一职责并不是极端地要求我们只能为对象定义一个职责,而是利用极端的表述方式强调重点,在定义对象职责时要考虑职责与对象之间的所属关系。我们保证对象只做一件事。如果对象有多个职责是该对象独有的,既该职责不需要为其他对象所调用的,既可以归结为单一职责的范畴。比如一个与媒体播放相关的要求,他有 stopplay方法。这些方法从职责的角度来讲是内聚的,所以完全符合单一职责,专注做一件事的要求。如果需要有下载的功能,这就又是一个职责了,需要另外写一个类。

我认为单一职责原则不仅适用于对象之间,也适用于对象中的方法之中。对象中的方法尽量实现一个功能,比如我要灰掉并禁用鼠标事件,这就是两个功能,如果写到一块的话,那么当我想只实现把它灰掉的功能时就要把禁用鼠标的代码给包含进来,不利于复用,扩展。

 

其实,用一句来总结就是“一切皆对象“。把大的化小,复杂的简单化。分的越细越好。

 接口隔离原则

         接口隔离跟职责单一有异曲同工之妙,专注做一件事。

比如我一个类里面有很多接口,可以供abc使用,但abc都只用到了其中的一些接口,剩下的用不到。你说这是不是浪费。如果我把这些接口拆分成多个接口的话,那么我想使用那个接口的时候,只需要实现其中某些接口就ok了。就不会产生过多的

冗余代码。

接口隔离保证了对象的高内聚,低粒度,强复用。

   开闭原则

          开闭原则主要是对修改关闭,对扩展开放。

这要怎么做呢,这就要求我们在设计模块的时候底层尽可能的更抽象。就比如说让所有的ui面板都实现同一个接口,ui面板管理器统一管理所有ui。当我们需要添加一个ui面板的时候,只需要实现这个接口就行了。然后再在ui管理器哪里注册管理。

  里氏代换原则。

         说句简单的就是一个类的父类或者接口类可以调用这个类的公共属性和方法。

  依赖倒置原则

         高层模块不依赖底层模块,两者都依赖抽象

         抽象不依赖细节,细节应该依赖于抽象。

         主要还是提倡面向抽象,面向接口编程。

依赖倒置原则的几大规则

       1、每个类尽量都有接口和抽象类,或者抽象类和接口都有。

       2、变量的表面类型尽量是接口或者是抽象类。

3、任何类都不应该从具体类派生。(但是在做二次开发的时候,我们无法获得高层代码的时候例外),规则不是绝对的。

       4、尽量不要覆写基类已经实现好的方法。

转载地址:http://oejsi.baihongyu.com/

你可能感兴趣的文章
JVM并发机制探讨—内存模型、内存可见性和指令重排序
查看>>
WPF中PATH使用AI导出SVG的方法
查看>>
带WiringPi库的交叉笔译如何处理二之软链接概念
查看>>
Java8 HashMap集合解析
查看>>
自定义 select 下拉框 多选插件
查看>>
fastcgi_param 详解
查看>>
poj 1976 A Mini Locomotive (dp 二维01背包)
查看>>
MODULE_DEVICE_TABLE的理解
查看>>
db db2_monitorTool IBM Rational Performace Tester
查看>>
postgresql监控工具pgstatspack的安装及使用
查看>>
【JAVA数据结构】双向链表
查看>>
【JAVA数据结构】先进先出队列
查看>>
乘法逆元
查看>>
Objective-C 基础入门(一)
查看>>
通过mavlink实现自主航线的过程笔记
查看>>
Flutter Boost的router管理
查看>>
iOS开发支付集成之微信支付
查看>>
C++模板
查看>>
【C#】如何实现一个迭代器
查看>>
【C#】利用Conditional属性完成编译忽略
查看>>