我有一个类,我想扩展功能,以一种方式的装饰器/适配器类,只是我不希望我的扩展类必须知道任何有关它正在扩展的类的种类,而且我不想为每个想要扩展的对象类型编写一个新类。然而,我想要扩展的所有对象都有一个共同的基类,Team
。这听起来成熟一个使用泛型的,所以这里是我最初的想法:这是什么设计模式,这是一个好主意吗? (C#)
public class TournamentTeam<T> : T
where T : Team
{
private int mSeed;
public TournamentTeam(T team, int seed)
: base(team)
{
/*
* error checking stuff here
*/
// set class variables
this.mSeed = seed;
}
public int Seed
{
get { return this.mSeed; }
}
}
这会做我想要的东西,因为现在如果我要访问的T成员,新类有所有的人。基础构造函数将负责设置状态,以便扩展类不需要担心。我也不需要知道为了指向装饰器/外观类型方式中的内部对象而重写什么方法。不用说,这没有编译。所以,我尝试了一些与众不同的东西。好吧,现在如果我想要了解“基类”的功能,我只需要调用团队属性,我很高兴。而且,由于它是通用的,我不必做任何拳击来获得功能。它的作品,它不漂亮,但它的作品。
这是什么模式,如果存在的话,以及这个想法有什么隐患吗?有没有更好的方法来完成这一点?