工厂模式的问题 比较浅显高手莫嫌

在开发过程中,如果出现需要建立一组界面相似的类的时候,可能会考虑使用类工厂模式,一般的做法是:
1。使用一个接口定义界面
2。性质相似的功能不同的类实现这一接口,从而确保界面相似但功能不同
3。建立类工厂,根据不同的参数生产不同的类。
4。类实例的使用者通过调用类工厂来生产自己需要的类。

问题是如果派生类有超出接口的方法时,使用者需要把从类工厂生产出的类实例进行强制转换,才能使用该派生类的自身特殊的方法,各位在开发中碰到这样的问题一般是怎么做的?

这是一般接口和实现的通常问题,以前我是这样做,但是现在我认为出现这种情况,是因为接口设计可能不很准确,换句话说,可能模式设计的问题,或者不只是一个模式能够解决的。

我认为可以采用一下装饰模式,

也就是组合使用模式?
可是工厂模式是生成类的实例,装饰模式强调结构性,它们应该怎样组合才能解决这个问题呢。