我想大家都知道。现在最流行的设计模式就是面向对象,那么什么是面向对象呢?
  首先我们来看下官方的定义。在维基百科上说:

  面向对象程序设计(英语:Object-oriented programming,缩写:OOP)是种具有对象概念的程序编程范型,同时也是一种程序开发的抽象方针。它可能包含数据、属性、代码与方法。对象则指的是类的实例。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性,对象里的程序可以访问及经常修改对象相关连的数据。在面向对象程序编程里,计算机程序会被设计成彼此相关的对象

  上面是维基百科上对于面向对象的解释。这段话对于刚刚学习编程的人来说可能有点抽象,不太容易懂。至少我在第一次看到这句话时,是一脸懵逼的。下面我来说说我对面向对象的一个理解。

要理解什么是面向对象,我们就先要知道什么是面向过程。

面向过程:就是将要实现一个功能所需要的步骤一步一步的写出来出来,要做到面面俱到、有条不絮。

  例如在JavaScript如果需要在页面当中插入一个DOM元素。按照面向过程的设计方法就是:

var div = document.createElement(“div”);
document.body.appendChild(div);

如果需要让这元素显示出来这需要:

div.style.width = “100px”;
div.style.height = “100px”;
div.style.backgroundColor = “blue”;

  这样就可以在页面中显示边长为100px蓝色的区块。而如果你还想再要在页面插入一个DOM元素,这就需要将上面类似的代码再写一遍。这就是面向过程的设计方式。

而面向对象:**就是找到或创建一个可以实现你想要功能的对象,然后调用这个对象来实现想要的功能。**就如下面:

  • 首先我们定义一个对象:
function createElem(elem) {//创建DOM对象。this.DOM = document.createElement(elem);//设置样式 this.css = function(obj) {for(var key in obj) {if (obj.hasOwnProperty(key)) {this.DOM.style[key] = obj[key];}}return this;}//设置属性this.setAttributes = function(obj) {for (var key in obj) {this.DOM.setAttribute(key, obj[key]);}return this;}//插入到页面中   this.appendTo = function(node) {node.appendChild(this.DOM);return this;}return this;
}
  • 在调用这个对象
//要设置的样式
var obj = {"width" : "100px","height" : "100px","backgroundColor" : "blue"
}//调用创建的对象。
createElem("div").css(obj).appendTo(document.body).setAttributes({"id" : "main","class" : "box"});

  这样的话同样在页面上显示出一个边长为100px 的蓝色区块。并且,如果想要再插入一个DOM元素的话。那就再调用上面的对象并传入相应的参数就可以了。所以说:面向对象就是将面向过程的代码进行封装,并将其核心的参数抽象化,使其可以复用,从而减少代码量的一个模式。
  最后要明确一个概念:**面向对象不是面向过程的代替,而是面向过程的封装。**所以不管你如何的面向对象,最终还是要靠一步一步的过程来实现你想要的功能的。

我的个人网址 https://wangyiming.info/

理解什么是的面向对象设计相关推荐

  1. 谈谈对类和接口粒度的理解(根据面向对象设计原则)

    类 谈到类,我们从可以这一方面开始想,为什么要有类? 我们会不假思索地说是因为一种面向对象思想,那么面向对象思想是什么? 面向对象方法是把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统建 ...

  2. 设计模式之实验一:面向对象设计原则实验

    实验项目一:面向对象设计原则实验 (1)实验目的与原理 ①深入理解和掌握面向对象设计原则. ②能运用面向对象设计原则对系统进行重构. ③能绘制系统结构图(类图) (2)实验内容与步骤 ①某绘图软件提供 ...

  3. 深入理解面向对象设计的七大原则

    一.面向对象设计的七大原则是什么? 1.开放封闭原则 2.里氏转换原则 3.依赖倒转原则 4.组合/聚合原则 5.接口隔离原则 6."迪米特"法则 7.单一职责原则 二.七大原则是 ...

  4. 从面向对象设计思想出发理解Spring AOP编程

    都说AOP是OOP(面向对象)的继承与延续,我觉得理解AOP还是得从OOP出发,经历从暴露问题到解决问题的过程. 目录 一. 面向对象设计思想(OOP) (1)概述 1. POP编程 2. OOP的优 ...

  5. uml图中的各种箭头_设计模式学习笔记(二):UML与面向对象设计原则

    1 UML 1.1 UML UML(Unified Modeling Language)是统一建模语言,1997年11月UML1.1版本提交给OMG并正式通过,成为建模语言的个那个也标准.2003年6 ...

  6. 技术图文:01 面向对象设计原则

    01 面向对象设计原则 知识结构: 一碟开胃的小菜 小菜今年计算机专业大四了,学了不少软件开发方面的东西,也学着编了些小程序,踌躇满志,一心要找一个好单位.当投递了无数简历后,终于收到了一个单位的面试 ...

  7. 数据结构与算法:03 C#面向对象设计 I

    03 C#面向对象设计 I 知识结构: 1.类与对象 类:用高级程序语言实现的一个ADT描述. 对象:通过类声明的变量. 2.封装 2.1 什么是封装 把类的内部隐藏起来以防止外部看到内部的实现过程. ...

  8. 一文理解 DDD 领域驱动设计!

    来源丨SpringForAll社区 2004年Eric Evans 发表Domain-Driven Design –Tackling Complexity in the Heart of Softwa ...

  9. 02面向对象设计原则

    技术交流QQ群:1027579432,欢迎你的加入! 1.为什么需要面向对象设计 变化是复用的天敌!面向对象设计最大的优势在于抵御变化! 2.重新认识面向对象 理解隔离变化 从宏观层面上来看,面向对象 ...

最新文章

  1. UVA11722(见面概率)
  2. NDArray自动求导
  3. c# 两个list比较_C#刷遍Leetcode面试题系列连载(1) 入门与工具简介(VS Code amp; VS)...
  4. 刚毕业的参加工作的黄金时期的核心策略:打好基础
  5. (读书随笔)接口和抽象类的一些区别总结
  6. 八大排序:Java实现八大排序及算法复杂度分析
  7. cmd windows 命令sleep_最实在的9个黑客命令!确定不学习下?
  8. angular cannot get /
  9. 红帽子linux系统下载服务器OS:Windows、Linux与Unix三分天下
  10. 奕东电子深交所上市:市值115亿 小米产业基金是股东
  11. Centos7.5安装redis
  12. python函数——Bunch配置加载
  13. Linux中如何安装特定的gcc版本
  14. crosscheck(crosscheck是什么意思)
  15. 第十届大学生服务外包创新比赛心得和感悟
  16. 解决win10搜索框无法搜索本地应用或无反应
  17. 嵌入式开发教程哪家好?linux嵌入式系统开发
  18. 以图搜图新体验:图片谷歌和百度识图
  19. k8s之简单部署java应用
  20. 大学生毕业后如何学习STM32并轻松处理工作

热门文章

  1. 二级造价工程师证书含金量到底有多高?看这些就知道了
  2. 瞻博-Juniper-SSG-双机高可用(HA)平滑升级经验分享篇
  3. 【AI-CPS OS】重磅:知识图谱在MRO工业品电商平台产品库标准化中的实际应用
  4. EOP驱动安装教程附驱动安装失败详细解决方法
  5. 用友T3、T6常见问题
  6. 计算机激光鼠标,技嘉GM-M7700 2.4GHz无线激光鼠标
  7. linux下iostat命令详解
  8. linux bin sbin root,linux 下 /bin /sbin 的区别
  9. Hibernate和Mybatis的优缺点对比
  10. Redux 学习之 middleware详解