私はインタフェース(MyController
)を持っています。 2つのクラスがそのインタフェースを実装しています(ControllerTypeA
とControllerTypeB
)。別のクラス(MyFinal
)のフィールドはMyController
なので、ControllerTypeA
またはControllerTypeB
のいずれかを含むことができます。 MyController
,ControllerTypeA
、ControllerTypeB
、およびMyFinal
のUMLでの関係をどのようにモデル化しますか?あなたがここに関連を持っているので、クラスにインタフェースを実現する属性がある場合にUMLでモデル化する方法
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ScratchApp
{
public interface MyController
{
void method1(String str);
void method2(int num);
}
public class ControllerTypeA : MyController
{
public void method1(String str)
{
Console.WriteLine("This is controller type A and the string is: " + str);
}
public void method2(int num)
{
Console.WriteLine("This is controller type A and the number is: " + num);
}
}
public class ControllerTypeB : MyController
{
public void method1(String str)
{
Console.WriteLine("This is controller type B and the string is: " + str);
}
public void method2(int num)
{
Console.WriteLine("This is controller type B and the number is: " + num);
}
}
public class MyFinal
{
public MyController myController;
public MyFinal(MyController mc)
{
myController = mc;
}
}
class Program
{
static void Main(string[] args)
{
MyFinal mf1 = new MyFinal(new ControllerTypeA());
MyFinal mf2 = new MyFinal(new ControllerTypeB());
mf1.myController.method1("From mf1");
mf1.myController.method2(1);
mf2.myController.method1("From mf2");
mf2.myController.method2(2);
Console.ReadKey();
}
}
}