zoukankan      html  css  js  c++  java
  • OPP(面向对象)理念

    “一树菩提,一‘门’一世界。”一切皆对象,万物有三问·我是谁? 我从哪里来?我到哪里去?

    面向对象编程( object -Oriented Programming, OOP )是划时代的编程思想变革,推动了高级语言的快速发展和工业化进程。 OOP的抽象、封装、继承、多态的理念使软件大规模化成为可能,有效地降低了软件开发成本、维护成本和复用成本。面向对象编程思想完全不同于传统的面向过程编程思想,使大型软件的开发就像搭积木那样隔离可控、高效简单,是当今编程领域的一股势不可当的潮流。 OOP 实践了软件工程的三个主要目标:可维护性、可重用性和可扩展性

    OOP理念

    面向过程让计算机有步骤地顺次做一件事情,是一种过程化的叙事思维。但是在大型软件开发过程中,发现用面向过程语言开发,软件维护、软件复用存在着巨大的困难,码开发变成了记流水账,久而久之就成为“面条 代码,模块之间互相耦合,流程互相穿插,往往牵一发而动全身。面向对象提出一种计算机世界里解决复杂软件工程的方法论,拆解问题复杂度,从人类思维角度提出解决问题的步骤和方案。

    比如”开门“这个动作,面向过程是“open(Door door)”,“door”是被作为操作对象的参数传入方法的,方法内定义开门的具体步骤实现。而在面向对象的世界里首先定义一个对象“Door”, 然后抽象出门的属性和相关操作,属性包括门的尺寸、颜色、开启方式(往外开还是往内开)、防盗功能等。门这个对象的操作必然包括open()和close()两个必备的行为。面向过程的结构相对松散,强调如何流程化地解决问题;面向对象的思维更加内聚,强调高内聚、低耦合,先抽象模型,定义共性行为,再解决实际问题。

    面向对象四大特性

    (1)抽象

    抽象是要找到属性和行为的共性。将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面,抽象只关注对象有哪些属性和行为,并不关注这些行为的细节。

    (2)封装

    封装在抽象基础上决定信息是否公开及公开等级,核心问题是以什么方式暴露哪些信息。封装的主要任务是对属性、数据、部分内部敏感行为实现隐藏,对属性的访问和修改必须通过公共接口来进行,某些敏感方法或者外部不需要感知的复杂逻辑处理,一般也会进行封装。封装有效的保护了内部数据的安全,使对象关系变得简单,降低了耦合度,方便维护

    (3)继承

    继承使子类能够继承父类,获得父类的部分属性和行为,使模块更有复用性

    (4)多态

    以抽象、封装和继承为基础,根据运行时的实际对象类型,使同一个方法产生不同的运行结果,使同一个行为具有不同表现形式。重写和重载是多态的不同表现形式,多态使模块在复用性基础上更加有扩展性,使运行期更有想象空间。

    希望本文章对您有帮助,您的转发、点赞是我的创作动力,十分感谢。更多好文推荐,请关注我的微信公众号--JustJavaIt
  • 相关阅读:
    AngularJS中写一个包裹HTML元素的directive
    AngularJS中实现Model缓存
    控制台获取AngularJS某个元素的Scope
    体验jQuery和AngularJS的不同点以及AngularJS的迷人之处
    AngularJS中$interval的用法
    AngularJS中处理多个promise
    AngularJS中获取数据源的几种方式
    AngularJS中ui-router全攻略
    AnguarJS中链式的一种更合理写法
    AngularJS转换请求内容
  • 原文地址:https://www.cnblogs.com/liaowenhui/p/15390712.html
Copyright © 2011-2022 走看看