我试图在UML类图中表示以下情况。
- 我们有一个名为Selection的类,用户可以在其中选择下一个屏幕是
- 选择类有一个属性screen:screen,其中screen是一个接口
- 界面屏幕有多种实现方式。例如SimpleScreen、SuperScreen等
- 选择类中的screen属性应该能够包含屏幕的任何实现的实例,这取决于用户的选择
我的问题是:
- 在OO中可以做到这一点吗
- 在这种情况下,类图表示会是什么样子
现在我有一个这样的图表:http://yuml.me/1dcb2f2f
如果你想修改我使用的yuml.me的图表,这是链接http://yuml.me/edit/1dcb2f2f
感谢您的帮助
是的,在OO中可以做到这一点。正确的UML表示法是:
http://app.genmymodel.com/engine/xaelis/nextScreen.jpg
为了在抽象的"屏幕"上进行多态操作,实现必须遵循公共接口或从公共基类继承。
我不确定UML的正确方法,我认为你已经得到了正确的图表。
熟悉设计模式。
使用工厂方法(根据用户选择生产实例)+
singleton(使工厂易于访问并确保只存在一个工厂),用于生产所需类的实例+
带有桥接模式的对象组合(允许将接口与实现解耦,并允许在运行时切换实现/)