有个设计有关问题 请问

有个设计问题 请教
请教一个设计问题

web页上有很多的元素,例如 link, button, text,lable等等

这些元素都有些共性 例如,ID,name,以及一些唯一的xpath等

我定义了一个基类 
Class BaseElement
ID
name,
xpath
....

但是link button可以执行click动作,text可以执行输入的动作 

所以
Class LinkElement extends BaseElement
public click()

Class TextElement extends BaseElement
public type()

我想做的事情是,在运行时指定具体是哪种子类

例如
BaseElement element = Factory.create(ElementType)

element.click()

element.type()

如何实现呢?

多谢

------解决方案--------------------
1,把click和type等接口提到基类,可以实现,不过这样几个不好的地方:基类接口太多;对具体的子类来说包含了不需要的接口

2,另外加一个类比如 action,从action可以派生不同的具体类,比如clickaction,typeaction等等;
BaseElement加一个接口doaction,以action为参数
这样click时就element.doaction(clickaction object)
type时element.doaction(typeaction object)
------解决方案--------------------
up
------解决方案--------------------
把可变的行为如:type click等等,从各控件中抽取出来
做成接口组合到BaseElement中去,这样行为和控件基本上
解耦了。可参考策略模式
------解决方案--------------------
接分先!