
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
面向对象编程开发是目前大多数软件开发程序员都需要熟练掌握并应用的一个编程开发方法,下面我们就通过案例分析来了解一下,面向对象编程开发原则都有哪些。
1、里氏替换原则
里氏替换原则:如果对每一个类型为S的对象o1,都有类型为T的对象o2,使得以T定义的所有程序P在所有的对象o1都代替o2时,程序P的行为没有发生变化,那么类型S是类型T的子类型。
简单来说:子类永远可以替换父类,且不会造成错误、异常
这是一个用来规范继承的原则,该原则包含四层含义:1.子类必须完全实现父类的方法;2.子类可以有自己的实现;3.覆盖或实现父类的方法时,输入参数可以放大;4.覆盖或实现父类的方法时,返回值可以缩小。
通过该原则,继承标准的实现了一个“is-a”语义,让父类是子类的公共特征与接口的集合,可以从抽象层面代指子类。也是通过这样一个标准的抽象与实现的语义,才可以让我们将变化的抽象公共特征提取,并交由子类去实现变化的细节。
2、单一职责原则
单一职责原则:一个类应该有且仅有一个原因引起类的变更
单一职责原则要求一个接口或一个类只能有一个原因引起变化,也就是一个接口或者类只能有一个职责,它就负责一件事情。
从定义上,我们就可以看出,这是在控制变化。在面向变化编程中我们讲到,我们要封装变化,让变化本身小,同时让变化对外暴露的接口小。可以说,每一个变化,就对应一个类,二者是一对一的关系,变化本身是独立的。而一个抽象类则对应了一组相关的变化。
让变化本身小,就是在告诉我们每个对变化的封装只包含一个变化,且不包含与变化无关的逻辑部分。
让变化对外暴露的接口小,则是在说抽象变化的宏观表现,将每个完整而独立的功能当成一个整体。简单来说,就是多个相同层面的功能不能放到一起,尽可能暴露更抽象层面的表现接口。
3、开闭原则
开闭原则:类应该对拓展开放,对修改关闭
对拓展开放,对修改关闭,不正是面向变化的编程方法——支持变化的表述?
我们通过提取抽象的公共特征与接口作为对外表现接口来屏蔽外部对内部变化的感知,通过继承实现包含不同细节的具体类进行拓展,通过尽可能的自描述与其他优化方法降低外部对具体类的引用。
4、少知道原则
少知道法则:一个对象应该对其他对象有少的了解
少知道原则让我们尽可能少的允许直接引用某个对象,同时尽可能少的给外部(包括可以直接引用的“朋友”)暴露自己的细节。
在面向变化编程中,要求封装变化,每个变化都对应一个类,每个变化都只在有此变化的类中被引用。同时,针对变化良好的封装要求我们控制变化对外部的影响,只提供更抽象的表现接口。由此,我们要暴露变化本身宏观的表现,让外部了解变化少的细节。
5、依赖倒置原则
依赖倒置原则:要依赖抽象,不要依赖具体的类
类之间的依赖关系也是变化之间的依赖关系。该原则要求我们面向接口编程,而不是面向实现。换句话说,是要求我们依赖变化的抽象类(包含了变化的公共特征与抽象表现接口),而不是包含变化细节的具体类。
本原则,正是我们对变化的处理方法。面向变化编程要求我们在外部关心的是变化的抽象表现,而变化的细节全部封装到内部。这不但是封装变化的要求,同时也是支持变化的基础。
6、接口隔离原则
接口隔离原则:不应该依赖它不需要的接口,类间的依赖关系应该建立在小的接口上
该原则要求我们明确真正独立改变的变化到底是什么。这就对应我们封装变化的关键之一:将变化缩小为它本质的样子。
通过切实了解到底是什么引发了变化,进而确定每组变化的公共特征与抽象外在表现,才能保证变化的独立性和灵活性,才能保证项目的可拓展和代码的可复用性。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。