- 博客(9)
- 收藏
- 关注
JAVA与里氏代换原则
1.氏代换原则,里氏代换原则的严格表达是:如果对每一个类型为T1的对象o1,都有类型为T2的对象o2,使得以T1定义的所有程序P在所有的对象o1都换成o2时,程序P的行为没有变化,那么类型T2是类型T1的子类型。换言之,一个软件实体如果使用的是一个基类的话,那么一定适应入其子类,而且它根本不能觉察出子类对象和基类对象的区别。2.Is_A和Has_A 它是决策聚合和继承时的重要依...
2008-08-29 11:19:34 403
原创 模式—Simple Factory
模式—Simple Factory是不同工厂方法模式的一个特殊实现。在很多文献中,简单工厂模式往往作为普通工厂模式的一个特例讨论。在Java语言中,通常的工厂方法模式不能通过设计功能的退化给出静态工厂方法模式。简单工厂模式就是由一个工厂根据传入的参数量决定创建出那一种产品类的实例。它涉及到了工厂角色、抽象产品角色和具体产品角色: 工厂类(Creator)角色:担任这一角...
2008-08-27 17:06:39 170
模式—Singleton
Singleton模式意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点。实用性:当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时。简单实现:[code]class Singleton {public:static Singleton* Instance();protected:Singleton();private:...
2008-08-26 16:33:52 144
原创 (超强)反转一个字节 和 判断32位整数二进制中1的个数 的算法
[code]unsigned char reverse8( unsigned char c ) { c = ( c & 0x55 ) > 1; c = ( c & 0x33 ) > 2; c = ( c & 0x0F ) > 4; return c; } [/code][code]unsigned long func(unsigned long x) ...
2008-08-22 09:58:44 215
原创 雷神之锤III》里求平方根倒数的函数(快速平方根(倒数)算法)
在3D图形编程中,经常要求平方根或平方根的倒数,例如:求向量的长度或将向量归一化。C数学函数库中的sqrt具有理想的精度,但对于3D游戏程式来说速度太慢。我们希望能够在保证足够的精度的同时,进一步提高速度。 Carmack在QUAKE3中使用了下面的算法,它第一次在公众场合出现的时候,几乎震住了所有的人。据说该算法其实并不是Carmack发明的,它真正的作者是Nvidia的Gary Tar...
2008-08-22 09:44:53 2978 1
24点
[code]double d[5],r[4][5]; bool found=false; ofstream out; void search(double *d,int n){ // print(d,n); double e[4]; int i,j,m,t; //循环控制变量 double a,b; //选取运算的数值 if(n==1){ ...
2008-08-22 09:41:05 213
全排序
关于全排序的方法很多,这个是根据组合学算法得出的自我认为还是比较高效的算法。算法的基本方法是现通过排序,在根据组合算法得到该序列的下一个字典序列。一下代码为取得下一个序列的源代码,在C++的STL库中,也有该方法,但是频繁调用效率会很低,当需要的时候,还是自己写个好……[code]public boolean next_permutation(StringBuffer str){...
2008-08-22 09:28:09 155
原创 指针的高级声明
现在也不记得是在那里看到这篇总结的,如果你是原创,麻烦跟我说下,希望不会有侵权之说。在使用指针之前,我们必须观察它是如何声明的: 1,简单的例子: int f; //一个整形变量 int *f; //一个整形指针 2,不简单的例子 int *f(); //一个返回整形指针的函数 int (*f)();//一个返回整形的函数指针 3,较复杂的例子 int *(...
2008-08-22 09:04:49 84
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人