随笔分类 -  面向对象思想

包含面向对象编程原则,UML,面向分析,面向对象设计,面向对象软件开发过程等相关知识。
摘要:JS只是一门支持面向对象编程的语言,通过OO可以让我们的代码组织更加人性化。可是与传统基与类的面向对编程语言不同它没有类概念并且没成员访问修饰符。这多少会给我们编程工作会带来一些束缚。 其实通俗的讲类就是对象的模板,为了增强JS的OO特性,受mootoos框架启发我们可以使用一个JSON对象来描述这个对象的模板。在这个模板中我们可以模拟实现私有成员,受保护成员,静态成员。 这是一个在JS中模拟的类定义语法,代码中Class是一个自定义函数,它接受两个参数,第一个参数是类名、第二个参数是一个JSON用来一个对象的模板。在这个JSON对象中其中字段 "extend",,&quo 阅读全文
posted @ 2011-12-08 20:42 rentj 阅读(879) 评论(1) 推荐(0) 编辑
摘要:面向对象的好处就是可以让你的代码语义性更强,因为使用它可以直观的表达“谁.做什么()”的语义,使得我们的程序代码更接近自然语言。然而现实的情况就是我们经常会看到使用面向对象的编程语言写出来的却是面向过程的代码。其实这也不难理解因为大多人开始学习编程语言都是从面向过程的语言学起的如BASIC,C等这些经典的编程入门语言。但在实际开发中一方面是这些面向过程的知识和经验对我们产生了一种先入为主的主导作用,另一方面我们又希望能够得到面对象编程的优势。最终使得我们实际产出的是即没有向过程也没有面向对象的代码,虽然感觉设计有问题但又不知道问题出在那。后来我们知道了OO设计原则、OO设计模式便如获至宝般开. 阅读全文
posted @ 2011-04-30 15:14 rentj 阅读(3232) 评论(32) 推荐(8) 编辑
摘要:这里使用原生的javascript,用面向对象的方式创建一个容易维护使用方便的滑动菜单,调用方式如下:[代码]演示代码分为slide.js和slide.html两个文件slide.htm:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--<!D... 阅读全文
posted @ 2010-08-20 22:52 rentj 阅读(1337) 评论(3) 推荐(0) 编辑
摘要:我在工作中经常遇到这种情况。为某功能实现了一段代码,然后觉得这段代码或许以后会复用到,于是想尽办法开始复杂的对其进行泛化和完善使其更通用。初衷是为了避免代码重复方便代码维护以通过日后复用提高开发效率。但这样做花费的精力和成本往往都很大,反而极大的降低了开发效率,有些得不尝失。现在越来越怀疑这种为“日后的复用”,究竟是种方便还是种麻烦。今天看到一篇就这个问题做了些讨论的文章个人感觉很受用。... 阅读全文
posted @ 2009-04-16 23:34 rentj 阅读(1984) 评论(7) 推荐(0) 编辑
摘要:面向对象设计原则 通用职责分配模式(GRASP) GRASP对一些基本的职责分配原则进行了命名和描述,因此掌握这些原则有助于支持RDD 相关文章: http://www.cnblogs.com/wxf0701/archive/2008/05/04/1181878.html http://www.lifevv.com/sysdesign/ 测试驱动开发(TDD) 职责驱动设计(RDD)... 阅读全文
posted @ 2009-02-04 22:52 rentj 阅读(500) 评论(0) 推荐(0) 编辑
摘要:保持设计代码的清洁,是使设计具有灵活性的基础,是快速开发的保证,有利于以后的维护和扩展 不要让没用的功能充斥着自己的系统,不要给系统制造垃圾还说等到以后再清理,我们实现的每个功能都应该是高质量的。不做要优于做差的东西。至少那样没有给系统制造垃圾(过分依赖重构会给代码制造垃圾) 当我们软件出来出现BUG找到开发人员进行修正时往往会出现这样的情形,我们经常会听到他们说这个模块不是我开发的请找某某某.在... 阅读全文
posted @ 2009-01-15 12:02 rentj 阅读(394) 评论(0) 推荐(0) 编辑
摘要:类的单一职责是面向对象编程原则的5大原则之一:职责表示一种行为,一种功能。类的职责取决于,属于该类的对象在系统中的角色。在进行系统设计时我们是出于什么原因需要有这个类,如果没有这个类对系统有什么影响。 通俗的讲学生的职责是学生老师的职责是教学,也可以说成老师的工作是教学有此我们认为这里说的类的职责也可以说是类的工作。而老师就代表着一种角色他教学的这个职责就代表他需要完成的一个使命。要完成这个使命他... 阅读全文
posted @ 2009-01-06 15:02 rentj 阅读(627) 评论(0) 推荐(0) 编辑
摘要:'对于高内聚低耦合的理解 '高内聚(自己只做自己的事),低偶合(自己和别人的保持尽量简单的协作关系) '他们之间是互相作用影响的如果一个代码实体他的内聚性高那么他的偶合性必然低,反之弈然 '1 对于一个模块或应用而言,类的内部功能要高内聚,也就是说类内所有成员共同完成一个功能,缺一不可,各个类之间要低偶合 '2 对于单个类而言,高内聚是指类内部每个方法完成功能要高内聚。把需要完成的一个功能的特定... 阅读全文
posted @ 2009-01-05 15:46 rentj 阅读(709) 评论(1) 推荐(0) 编辑
摘要:所有引用基类的地方必须能透明地使用其子类的对象。也就是说,只有满足以下2个条件的OO设计才可被认为是满足了LSP原则: 不应该在代码中出现if/else之类对子类类型进行判断的条件 子类应当可以替换父类并出现在父类能够出现的任何地方,或者说如果我们把代码中使用基类的地方用它的子类所代替,代码还能正常工作 里氏替换原则LSP是使代码符合开闭原则的一个重要保证。同时LSP体现了: - 类的继承原则:如... 阅读全文
posted @ 2009-01-05 12:45 rentj 阅读(370) 评论(0) 推荐(0) 编辑