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提供了 ...
随机推荐
- php 如何造一个简短原始的数据库类用来增加工作效率
class DBDA{ public $host="localhost"; public $uid="root"; public $pwd="123& ...
- JQuery------动态添加的元素on方法不起作用解决方法
转载: http://www.jb51.net/article/70342.htm
- maven学习讲解
参考链接:http://www.cnblogs.com/bigtall/archive/2011/03/23/1993253.html 1.前言 Maven,发音是[`meivin],"专家 ...
- Tengine 常用模块使用介绍
Tengine 和 Nginx Tengine简介 从2011年12月开始:Tengine是由淘宝网发起的Web服务器项目.它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能 和特性. ...
- Numerical Optimization: Understanding L-BFGS
http://aria42.com/blog/2014/12/understanding-lbfgs/ Numerical optimization is at the core of much of ...
- JSON FX
https://github.com/mckamey/jsonfx-v1#svn/trunk/JsonFx/JsonFx.Json
- C# WinForm中将Form显示在Panel中(C#)
信息来自:http://blog.csdn.net/renyouprince/article/details/4136176 当我们在做WinForm的程序时,总是要弹出一些窗体,但弹出窗体看起来效果 ...
- 未能加载文件或程序集“MySQLDriverCS
未能加载文件或程序集“MySQLDriverCS, Version=3.0.1735.36021, Culture=neutral, PublicKeyToken=172f94dfb0faf263”或 ...
- 程序日志输出实现-Log4j
学习开发的过程中,我们都应该用过System.out.println():来做一些调试工作,有时候确实很有用有没有.但是这种简单粗暴的方式让程序中到处存在着sysout.这种方式难免会有性能的影响,维 ...
- Python开发【第十五篇】:Web框架之Tornado
概述 Tornado 是 FriendFeed 使用的可扩展的非阻塞式 web 服务器及其相关工具的开源版本.这个 Web 框架看起来有些像web.py 或者 Google 的 webapp,不过为了 ...