Objective-C有相当多的动态特性,基本上也是最常用的有动态类型(Dynamic
typing)、动态绑定(Dynamic binding)和动态加载(Dynamic
loading),这些都是在Cocoa程序开发中非常常用的语言特性,在此之后OC底层也提供了相当丰富的运行时特性,比如枚举.....
分类:
其他好文 时间:
2014-06-07 10:18:18
阅读次数:
313
C#泛型获取传入的动态类型参数的属性值的问题dynamic tt =
SortObj.GetType().GetProperty(Key).GetValue(SortObj,
null);对C#泛型实例化对像,在使用泛型的类后面加入一个 where T : new(),代码如下:public cla...
分类:
其他好文 时间:
2014-05-30 05:31:08
阅读次数:
200
在程序设计中,鸭子类型(英语:duck
typing)是动态类型的一种风格。在这种风格中,一个对象有效的语义,不是由继承自特定的类或实现特定的接口,而是由当前方法和属性的集合决定。这个概念的名字来源于由James
Whitcomb Riley提出的鸭子测试(见下面的“历史”章节),“鸭子测试”可以这...
分类:
其他好文 时间:
2014-05-16 00:28:45
阅读次数:
513
对于c++面向对象一直很疑惑,这次决定下功夫把它弄明白一、派生类和基类之间的类型转换首先理解,派生类含有基类的所有成分,只不过有些就算在派生类的成员函数也不能访问而已。(1)派生类和基类的自动转换只针对指针或引用类型。只有指针和引用支持自动类型转换,同时,也只有指针和引用才可以静态类型和动态类型不同...
分类:
编程语言 时间:
2014-05-14 18:13:39
阅读次数:
290
装饰模式(Decorater)动态的给一个对象添加一些额外的职责。
就增加功能来说,装饰模式比生成子类更加灵活。装饰模式中有几个关键的地方:①装饰模式依赖于【装饰者】类中有一个父类对象(指针),
而装饰函数(或方法)用来此父类对象(指针)设置实际的动态类型。②因为是要给某个对象增加职责,所以很明显的...
分类:
其他好文 时间:
2014-05-14 12:03:06
阅读次数:
297
策略模式关于策略模式,我的理解:有若干个策略(算法),有一个管理策略的类,该类的输入为策略,输入为不同的策略(算法),输出为该种策略(算法)对应的类对象(的动态类型),然后程序员手动去使用该类对象(的动态类型)去调用相应虚函数,根据多态机制实现执行不同的操作。/*******************...
分类:
其他好文 时间:
2014-05-13 21:57:35
阅读次数:
427
在前一篇【简单工厂模式】中,使用计算器为例做了记录,在前文中提到了我写的简单工厂模式和书上讲得有点不同:简单工厂模式只是用来创建对象,而关于此对象的操作是另外一回事,程序员需要手动根据工厂类创建的类对象(一般是父类对象指针,静态类型为父类,动态类型为子类,多态的基础)。
而我在工厂内部加了一个Get...
分类:
其他好文 时间:
2014-05-13 20:21:01
阅读次数:
318
和前文讲到的经过改进的简单工厂模式类似,这里把策略模式和简单工厂模式结合起来。改进的关键是改写【TodoContext】上下文类,要在该类中产生对象(【干活】类的动态类型),对外提供的干活函数不变。如下:最大的不同就是CTodoContext类的构造函数参数不同了,构造函数成为类似简单工厂模式类的参...
分类:
其他好文 时间:
2014-05-13 20:11:47
阅读次数:
326
动态类型以及它提供的多态性,无疑是Python语言简洁性和灵活性的基础。
一、变量
变量创建
一个变量a,当代码第一次给它赋值时就创建了它,之后的赋值将会改变已创建的变量名的值。
变量类型
变量永远不会有任何的和它关联的类型信息或约束。变量原本是通用的,它只是在一个特定的时间点,简单的引用了
一下特定的对象而已。
变量使用
当变量出现在表达式中,它会马上被当前引用的对象所替代...
分类:
编程语言 时间:
2014-05-11 14:33:10
阅读次数:
360