摘自《Java与模式》作者阎宏面向对象的可复用设计的第一块基石:开闭原则(一个软件实体应当对扩展开放,对修改关闭)“开-闭”原则的手段和工具:1)里氏代换原则:任何基类出现的地方,子类一定可以出现;2)依赖倒转原则:要依赖于抽象,不要依赖于实现;3)合成\聚合复用原则:要尽量使用合成\聚合,而不是继...
分类:
其他好文 时间:
2014-05-12 11:24:27
阅读次数:
306
function Box(){}var box = new
Box();alert(box.prototype); //使用对象实例无法访问到prototypealert(box._proto_);
//输出[object][object] 使用对象实例可以访问prototype的指针alert.....
分类:
其他好文 时间:
2014-05-12 10:09:33
阅读次数:
255
在这篇文章里我们将会讨论与执行上下文直接相关的更多细节。讨论的主题就是this关键字。实践证明,这个主题是足够难的并且在不同的执行上下文中判定this的值经常会引发出许多问题。
许多编程人员习惯于认为编程语言中的this关键字和面向对象编程时密切相关的,准确的说就是this指向通过构造函数新...
分类:
编程语言 时间:
2014-05-12 09:46:56
阅读次数:
561
缺省构造函数,又称默认构造函数,是C++以及其他的一些面向对象的程序设计语言中,对象的不需要参数即可调用的构造函数。下面将针对缺省构造函数的定义、使用、以及注意问题等方面简要探讨。1、缺省构造函数是怎样的形式?是如何定义的?
在C++的一个类中,如果构造函数没有参数,或者构造函数的所有参数都有默认....
分类:
编程语言 时间:
2014-05-12 09:30:38
阅读次数:
326
1.Object-C也是面向对象的语言;2.#include
//#include是一个预处理指令3.using namespace std;
//std是命名空间,using决定了该源程序中的代码可以不用指定命名空间名为std4.const
常量只能读,不能修改,并且定义时必须初始化;5.由低精度...
分类:
编程语言 时间:
2014-05-12 09:07:01
阅读次数:
365
原文第11章 享元模式(Flyweight Pattern)概述:
面向对象的思想很好地解决了抽象性的问题,一般也不会出现性能上的问题。但是在某些情况下,对象的数量可能会太多,从而导致了运行时的代价。那么我们如何去避免大量细粒度的对象,同时又不影响客户程序使用面向对象的方式进行操作?享元模式j就可以...
分类:
其他好文 时间:
2014-05-12 08:53:38
阅读次数:
276
原文第15章 迭代器模式(Iterator Pattern)迭代器模式(Iterator
Pattern)
概述:在面向对象的软件设计中,我们经常会遇到一类集合对象,这类集合对象的内部结构可能有着各种各样的实现,但是归结起来,无非有两点是需要我们去关心的:一是集合内部的数据存储结构,二是遍历集合内部...
分类:
其他好文 时间:
2014-05-12 08:43:27
阅读次数:
310
原文第16章 观察者模式(Oberver
Pattern)观察者模式概述:在软件构建过程中,我们需要为某些对象建立一种“通知依赖关系”
——一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知。如果这样的依赖关系过于紧密,将使软件不能很好地抵御变化。使用面向对象技术,可以将这...
分类:
其他好文 时间:
2014-05-12 08:18:51
阅读次数:
433
原型模式创建对象也有自己的缺点,它省略了构造函数传参初始化这一过程,带来的缺点就是初始化的值都是一致的。而原型最大的缺点就是它最大的优点,那就是共享。原型中所有属性是被很多实例共享的,共享对于函数非常合适,对于包含基本值的属性也还可以。但如果属性包含引用类型,就存在一定的问题:1.//原型的缺点fu...
分类:
其他好文 时间:
2014-05-10 22:19:47
阅读次数:
323
学校比较不能让人理解,一个学年搞两门编程语言,好吧,c++要考试了,看看我学了一些什么。(好吧,我至今几乎没有上过c++课。)1.#include2.usingnamespacestd;一般都要弄这个上去,原因不解释。。首先不管是c++还是java还是c#都是面向对象的编程语言。C++的执行效率非常...
分类:
编程语言 时间:
2014-05-10 18:23:22
阅读次数:
352