如何确保我的类能够调用由我定义的方法,而对象将由其他用户定义。
我已经按照适当的设计模式构建了我的代码。在层次结构的顶部有一个抽象类,由几个类扩展,其他用户将能够扩展顶级类。
在工厂类中,顶级类的一些方法是在由我和其他用户创建的类的实例上调用的。但我既不知道这些类是如何被用户调用的,我怎么能在工厂类中调用它们的方法?
-
CarGenerator
(上) -
BlueBiggerCar
[extends CarGenerator] -
SmallGreenCar
[extends CarGenerator] -
RedCar
[extends CarGenerator]…
我允许用户添加扩展CarGenerator
的新类,并且在作为ScreenFactory
的Factory类中,汽车作为示例被处理在屏幕上。
在工厂ScreenFactory
中会有如下内容:
new SmallGreenCar().appearOnScreen(); //A small green car appears on the screen.
但是当我的代码发布时,用户将添加新的汽车作为对象,在这种情况下,如果我不能在FACTORY中创建它们的实例,这些汽车如何能够出现在屏幕上?我的代码结构可能是错的,但我不知道如何修复。
这两个设计模式都应该完成以下任务:
- 模板方法模式或
- 可扩展性模式框架