1.用public继承来实现“is a... ...”的关系
2.要么使用继承并进行详细说明,要么就不要用它
继承给程序增加了复杂度,因此它是一种危险的技术。所以要么不要使用,要么就要详细地给出说明。
3.遵循Liskov替换原则(Liskov Substitution Principle, LSP)
除非派生类真的是“是一个”更特殊的基类,否则就不应该从基类继承。派生类必须能通过基类的接口而被使用,且使用者无须了解两者之间的差异。遵循Liskov替换原则,继承就能成为降低复杂度的一个强大工具,因为它能让程序员关注于对象的一般特性而不必担心细节。
4.确保只继承需要继承的部份
如果只想使用一个类的实现而不是接口,那么就应该采用包含方式,而不是继承。
5.不要“覆盖”一个不可覆盖的成员函数
派生类中的成员函数不要与基数中不可覆盖的成员函数重名。例如private方法。
6.把共用的接口、数据及操作放到继承树中尽可能高的位置
接口、数据和操作在继承体系中的位置越高,派生类使用它们的时候就越容易。
7.只有一个实例的类是值得怀疑的
只需要一个实例,这可能表明设计中把对象和类混为一谈了。单件模式则是本条指导方针的一个特例。
8.只有一个派生类的基类也值得怀疑
不要创建任何并非绝对必要的继承结构。
9.派生后覆盖了某个子程序,但在其中没做任何操作,这种情况也值得怀疑
10.避免让继承体系过深
一个基类的派生类个数为7±2个。
11.尽量使用多态,避免大量的类型检查
12.让所有数据都是private(而非protected)
继承规则:
1.如果多个类共享数据而非行为,应该创建这些类可以包含 的共用对象。
2.如果多个类共享行为而非数据,应该让它们从共同的基类继承而来,并在基类里定义共用的子程序。
3.如果多个类即共享数据又共享行为,应该让它们从一个共同的基类继承而来,并在基类里定义共用的数据和子程序。
4.当你想由基类控制接口时,使用继承;你想自己控制接口时,使用包含
2.要么使用继承并进行详细说明,要么就不要用它
继承给程序增加了复杂度,因此它是一种危险的技术。所以要么不要使用,要么就要详细地给出说明。
3.遵循Liskov替换原则(Liskov Substitution Principle, LSP)
除非派生类真的是“是一个”更特殊的基类,否则就不应该从基类继承。派生类必须能通过基类的接口而被使用,且使用者无须了解两者之间的差异。遵循Liskov替换原则,继承就能成为降低复杂度的一个强大工具,因为它能让程序员关注于对象的一般特性而不必担心细节。
4.确保只继承需要继承的部份
如果只想使用一个类的实现而不是接口,那么就应该采用包含方式,而不是继承。
5.不要“覆盖”一个不可覆盖的成员函数
派生类中的成员函数不要与基数中不可覆盖的成员函数重名。例如private方法。
6.把共用的接口、数据及操作放到继承树中尽可能高的位置
接口、数据和操作在继承体系中的位置越高,派生类使用它们的时候就越容易。
7.只有一个实例的类是值得怀疑的
只需要一个实例,这可能表明设计中把对象和类混为一谈了。单件模式则是本条指导方针的一个特例。
8.只有一个派生类的基类也值得怀疑
不要创建任何并非绝对必要的继承结构。
9.派生后覆盖了某个子程序,但在其中没做任何操作,这种情况也值得怀疑
10.避免让继承体系过深
一个基类的派生类个数为7±2个。
11.尽量使用多态,避免大量的类型检查
12.让所有数据都是private(而非protected)
继承规则:
1.如果多个类共享数据而非行为,应该创建这些类可以包含 的共用对象。
2.如果多个类共享行为而非数据,应该让它们从共同的基类继承而来,并在基类里定义共用的子程序。
3.如果多个类即共享数据又共享行为,应该让它们从一个共同的基类继承而来,并在基类里定义共用的数据和子程序。
4.当你想由基类控制接口时,使用继承;你想自己控制接口时,使用包含
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24537613/viewspace-672490/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/24537613/viewspace-672490/