OOP感想
OOP是面向对象编程(Object Oriented Programming)。集于一身,最终目的是各司其职,让每个职责的只关注自己那块,其他的不管丢给下一个人。比如说,一个页面,对于客户,只要能看到漂亮的页面即可;对页面设计师,只要关注页面图片的设计即可;对于前端工程师,只需要关注页面实现即可;对于后台工程师,只要关注交互的数据即可。
html中
<div class="container">
<div>
<button class="btn">点我</button>
</div>
<div class="content1"></div>
<div class="content2"></div>
</div>
var testObject = {
init: function(){
this._btnEvent();
},
_btnEvent: function(){
$(".btn").click(function(){
console.log("我是click!");
})
$(".btn").mouseover(function(){
console.log("我是mouseover!");
})
$(".btn").mouseout(function(){
console.log("我是mouseout!");
})
}
} $(function(){
testObject.init();
})
这样有没有感觉稍显清晰?同一个模块的事件放在同一个方法体下,易于管理,看起来也舒服些。
2.接下来我想实现点击按钮后,给一个模块填充内容。
var testObject = {
init: function(){
this._btnEvent();
},
_btnEvent: function(){
$(".btn").click(function(){
var arr = [
"我是item1",
"我是item2",
"我是item3"
];
var p = "";
for(var i = 0, len = arr.length; i < len; i++){
p += "<p>"+arr[i]+"</p>";
}
$(".content").append(p);
})
}
} $(function(){
testObject.init();
})
感觉看着还成,因为代码少,不会有多少影响。如果我还给另一个模块增加内容。
var testObject = {
init: function(){
this._btnEvent();
},
_btnEvent: function(){
$(".btn").click(function(){
var arr1 = [
"我是item1",
"我是item2",
"我是item3"
];
var p = "";
for(var i = 0, len = arr1.length; i < len; i++){
p += "<p>"+arr1[i]+"</p>";
}
$(".content1").append(p); var arr2 = [
"我是模块1",
"我是模块2"
];
var div = "";
for(var i = 0, len = arr2.length; i < len; i++){
div += "<div>"+arr2[i]+"</div>";
}
$(".content2").append(div);
})
}
} $(function(){
testObject.init();
})
这个看起来是不是有点多了?如果我想再添加一个功能。。。连续性功能的平铺,会让人看着累,找一个内容要找半天,更不易于管理。为了避免不要这么累,我做以下操作。
var testObject = {
init: function(){
this._btnEvent();
},
_btnEvent: function(){
$(".btn").click(function(){
// 功能1入口
addTest1();
// 功能2入口
addTest2();
})
$(".btn").mouseover(function(){
// console.log("我是mouseover!");
})
$(".btn").mouseout(function(){
// console.log("我是mouseout!");
})
}
} function addTest1(){
var arr1 = [
"我是item1",
"我是item2",
"我是item3"
];
var p = "";
for(var i = 0, len = arr1.length; i < len; i++){
p += "<p>"+arr1[i]+"</p>";
}
// 如果还要添加其他功能的操做,还可以添加其他方法
// becomeMan();
// ...
$(".content1").append(p);
} function addTest2(){
var arr2 = [
"我是模块1",
"我是模块2"
];
var div = "";
for(var i = 0, len = arr2.length; i < len; i++){
div += "<div>"+arr2[i]+"</div>";
}
$(".content2").append(div);
} $(function(){
testObject.init();
})
这样看起来是不是舒服多了?我还可以在方法体中,再开辟新的方法,互不影响,看着代码也整洁美观些。
综上所述,在一个方法体最好只处理一个功能,不要把多个功能蹂在一起。牢记,要各司其职。
如果有讲的不好或者不对的方法,欢迎拍砖。
OOP感想的更多相关文章
- oop作业二—circle
oop作业-circle 题目描述 编写一个程序,要求根据给定的圆的半径求圆的面积,并将求得的结果打印出来. 要求: 输入输出采用cin和cout. 建立一个工程,将程序写成两个.cpp和一个.h的形 ...
- jQuery源码学习感想
还记得去年(2015)九月份的时候,作为一个大四的学生去参加美团霸面,结果被美团技术总监教育了一番,那次问了我很多jQuery源码的知识点,以前虽然喜欢研究框架,但水平还不足够来研究jQuery源码, ...
- c#面向对象基础技能——学习笔记(二)基于OOP思想研究对象的【属性】
字段(成员变量): 字段只能从对象中访问实例字段,无法直接从类中访问(换言之,不创建实例就不能访问),可以理解为:字段一般用在内部数据交互使用,当需要为外部提供数据时,(要优先使用自动实现的属性而不是 ...
- 一个简单oop的changeTab
好多地方都会用到这样一个效果“点击tab切换内容页”,根据自己的想法实现了一下,写了个简单的插件.以前写代码都是标准的函数式编程,现在觉得面向对象编程看起来比较爽,并且更容易维护,于是就用oop的思想 ...
- Python OOP(面向对象编程)
一OOP的作用 在Python中,类是面向对象设计(OOP)的主要工具.通过使用类这种工具,OOP可以: 1.分解代码,最小化代码的冗余. 2.通过定制现有的代码,来编写新的程序,而不用在原处进行修改 ...
- OOP,WEB开发实用小技巧
偶然读到一篇博客,记录一下心得.这种设计对于新手来说一般是想不到的,它充分的发挥了OOP语言的特性,让代码专用而清爽.这是不是重构的思想呢? 我们在写业务层的时候,有很多方法是重复功能的,我们就可以使 ...
- 从OOP的角度看Golang
资料来源 https://github.com/luciotato/golang-notes/blob/master/OOP.md?hmsr=toutiao.io&utm_medium=tou ...
- Building Modern Web Apps-构建现代的 Web 应用程序(一些感想)
<iframe src="http://channel9.msdn.com/Series/MVA-China/Web20140611A01/player?h=540&w=960 ...
- 玩转JavaScript OOP[2]——类的实现
概述 当我们在谈论面向对象编程时,我们在谈论什么?我们首先谈论的是一些概念:对象.类.封装.继承.多态.对象和类是面向对象的基础,封装.继承和多态是面向对象编程的三大特性. JavaScript提供了 ...
随机推荐
- asp.net 性能优化
在MSDN网络课堂中下载了一些九月份的网络讲座.有很多还是很有意义的.<ASP.NET系列讲座之一:性能与缓存>是由微软开发工具专家王立楠讲授.王先生的讲解非常清晰,课件也很详细,虽然是网 ...
- asp.net与Matlab类型转换(待补全)
上上篇的博客已经提到如何配置环境,即如何在asp.net中调用matlab生成的dll文件.这篇博客打算做个笔记,那就是matlab和C#数据类型如何转换.随着需求的增加,我会不断增加新的类型转换. ...
- IBatis插入类的实例
<insert id="insOrderDetail" parameterClass="OrderDetail"> INSERT INTO Orde ...
- WinForm------TreeList修改节点图标和按钮样式
转载: https://documentation.devexpress.com/#WindowsForms/DevExpressXtraTreeListTreeList_CustomDrawNode ...
- 导出excel失败,提醒提示加载类型库/DDL出错
导出excel失败,提醒提示加载类型库/DDL出错 www.MyException.Cn 发布于:2012-08-17 02:08:34 浏览:1538次 导出excel失败,提示提示加载 ...
- 如何查看crontab的日志记录
在Unix和类Unix的操作系统之中,crontab命令常用于设置周期性被执行的指令,也可以理解为设置定时任务. crontab中的定时任务有时候没有成功执行,什么原因呢?这时就需要去日志里去分析一下 ...
- Understanding Convolutions
http://colah.github.io/posts/2014-07-Understanding-Convolutions/ Posted on July 13, 2014 neural netw ...
- 《CSS3实战》读书笔记 第三章:选择器:样式实现的标记
第三章:选择器:样式实现的标记 选择器的魔力在于,让你完全实现对网页样式的掌控.不同的选择器可以用在不同的情况下使用.总之把握的原则是:规范的编码,根据合理地使用选择器,比去背选择器的定义有价值的多. ...
- Behavior Tree
http://www.craft.ai/blog/bt-101-behavior-trees-grammar-basics/ https://github.com/libgdx/gdx-ai/wiki ...
- Bitmap动画
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/BitmapData.html htt ...