不同用户查看同一对象或不同对象?

时间:2015-05-28 22:33:20

标签: uml ooad

假设我有一个拥有两个用户的网络应用。申请人发送申请表,案件处理人员处理申请表。不同的用户对申请表有不同的看法。从物理上讲,它可能是相同的申请表格。但在电子处理中,它们可以被视为具有依赖关联的不同对象。我的问题是,做出决定时应考虑哪些因素,无论是使用一个申请类还是将它们分成两个类,一个用于申请表,一个用于案例表。我对此的看法是,两个用户都在对象上拥有自己的操作,并且他们不“共享”相同的操作。创建两个类图可能更有意义,每个类都有明确的责任,但我需要为应用程序表单类的每个子类创建新类,这将是很多类。 An UML class diagram illustration:

2 个答案:

答案 0 :(得分:0)

您的第二个模型对第一个模型进行语义拆分,将namespace linkedLists { class Program { static void Main(string[] args) { int[] arr = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; int x = sumOfNum(arr, 0); Console.WriteLine(x); Console.ReadLine(); } public static int sumOfNum(int[] arr, int x) { int[] arr_new = new int[arr.Length - 1]; if (arr.Length > 1) { x += arr[arr.Length - 1]; for (int i = 0; i < arr.Length - 1; i++) { arr_new[i] = arr[i]; } } if (arr.Length > 1) { sumOfNum(arr_new, x); } return x; } } } Case分开。然后你创建任何一个的特化。这似乎没有意义。你的分裂是有意义的,主要是因为重复使用例如相同的Application并专注于Application,反之亦然:

enter image description here

答案 1 :(得分:0)

我喜欢你的Model2图表,尽管你可以采取一些措施来改善它。您的图表已经清楚地表明,在问题域中,ATypeCase仅启动BTypeApplication,而BTypeCase仅启动{redefines}

我要做的是改进图表:

  • 考虑使用可选的多重性。应用程序是否始终具有相关案例? (在提交之前怎么样?)
  • 将关联结束属性添加到三个关联中,例如
    |Application|--initiated by [1]----------initiates [0..1]--|Case|
    (抱歉,对于pidgin UML,我不想启动我的UML工具并找到托管图形的位置。)< / LI>
  • 在子类之间关联的关联结束时使用{{1}},以明确表示您正在进一步限制每个属性的类型。