“面向对象的设计”里面的“面向”是个形象的翻译,其实本意是“基于”对象的设计,是一种程序设计方法,这之前的程序设计方法是“基于”过程的,编程就是指定计算机运行的详细过程,有顺序、分支、循环三种基本机构。“基于”对象的程序设计颠覆了那个传统,程序设计者的人物是规定程序处理的各个对象的属性和方法,以及对象对事件的响应,设定好这些以后程序就完工了,然后交给系统和用户自行运作,结果可能有无限种可能。这样的程序设计方法,设计者设计时主要面对各类对象,所以叫做“面向对象的设计”。
结构化程序设计与面向对象主要的区别在于设计思维上不同,另外封装性上结构化编程比较难于封装,复用性上也不如面向对象编程。
1、设计思维。
面向过程程序设计方法的实质上是从计算机处理问题的观点来进行程序设计工作:“输入——运算——输出”。
面向过程程序设计者需要变更习惯的思维方法以贴近计算机的内部工作机理。面向过程程序设计所具有的流的工作性质,试图通过信息流及其转换来认识系统,不仅加大了程序设计的难度,同时亦使得程序的可理解性比较差。
面向对象在分析问题时,以对象为单位,考虑它的属性及方法,与传统的面向过程是完全不同的,面向过程在分析问题时,以一个具体的流程(事务过程)为单位,考虑它的实现。
当每次把各种设计模式回归到面向对象思想时,我都有一种“运用之妙,存乎一心”的感觉。如果能更多的更深层次的去思考面向对象思想,对于学习设计模式将会大有裨益。
2、封装性
结构化编程封装难度较大,因为其采用结构化程序分析设计程序时,开发者需要将客观世界模型分解一个一个功能,每个功能按照顺序用以完成一定的数据处理。 对于私有的方法,较难控制,敏感信息就比较难隐藏。
面向对象编程的封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象 *** 作,对不可信的进行信息隐藏。
3、复用性
传统的结构化程序设计方法以过程为中心构造应用程序,数据和处理数据的过程代码是分离的、相互独立的实体,设计出的程序可重用代码少,且当代码量增加时维护数据和代码的一致性困难
面向对象程序设计方法中,对象所具有的封装性和继承性使得代码重用成为可能,并大大减少了程序出错的可能性。
参考资料来源:百度百科——结构化程序设计
参考资料来源:百度百科——面向对象程序设计
面向对象程序设计语言传统的关系数据库SQL语言,面向对象程序设计语言传统的关系数据库SQL语言。根据从相关公开资料,面向对象的数据库系已成为当今数据库领域研究和发展的主要方向之一。数据库技术与面向对象技术相结合已成为当前数据库技术研究、应用和发展的一个重要方向。
面向对象程序设计的三大特征是多态(Polymorphism)、继承(Inheritance)、封装(Encapsulation)。
1、多态
多态核心的思想就是,父类的引用能够指向子类的对象,或者接口类型的引用能够指向实现该接口的类的实例。多态会这样的原因是因为子类就是父类。
2、继承
Java是单继承的,这一点和C++有所不同,这也就意味着,一个类只能继承于一个类,被继承的类叫父类,或者是叫基类baseclass,继承的类叫子类。
Java当中的继承使用关键字extends。可是,一个类能够实现多个接口,多个接口之间用逗号进行分割。实现接口使用关键字implements。
3、封装(Encapsulation)
封装比较的简单,类包含了方法和数据,将方法和数据放在一个类当中,就构成了封装。封装的优点:将变化隔离,便于使用,提高重用性,提高安全性;封装的缺点:将变量等使用private修饰,或者封装进方法内,使其不能直接被访问,增加了访问步骤与难度!
面向对象程序设计的六大基本原则:
1、单一职责原则
不要存在多于一个导致类变更的原因,即一个类只承担一个职责。
2、开放-封闭原则
对扩展开放,对修改封闭。无论模块多么封闭,都会存在一些无法对之封闭的变化,既然不能完全封闭,我们必须对于自己设计的模块应该对哪种变化封闭做出选择,必须先猜测出最有可能发生的变化种类,然后构造抽象来隔离这些变化。
3、迪米特原则
一个对象应该对其他对象有最少的了解,减少类与类之间的耦合。如果两个类不必彼此通信,那么这两个类就不应当发生直接的相互作用。类与类之间的耦合越弱,越有利于复用,一个处于弱耦合的类被修改,不会对有关系的类造成波及。
4、依赖倒转原则
上层模块不要依赖底层模块,它们都要依赖于抽象。抽象不能依赖于细节,细节要依赖于抽象。面向接口编程,不要面向实现编程。
5、里氏替换原则
子类型必须能够替换掉它们的父类型。只有当子类可以替换掉父类,软件单位的功能不受影响时,父类才能真正的被复用,而子类也能够在父类的基础上增加新的行为。
6、接口隔离原则
客户端不应该依赖于它不需要的接口,一个类对一个类的依赖应该建立在最小的接口上。不要让与自己无关的修改影响到自己功能模块的变化。
以上就是关于什么是面向对象的设计全部的内容,包括:什么是面向对象的设计、结构化程序设计与面向对象设计主要区别、面向对象和数据库技术是如何进行整合的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)