实现和通用化UML?

时间:2019-06-17 08:48:18

标签: c# uml

我不明白两者之间的区别 UML类图中的UML实现和泛化箭头。在特定的代码中,我创建了一个接口:

public interface IParser {
   void Parse(string[] txtFile);
   void Add(List<char> gameMap);
}

我继承了它:

public class ParseExits : IParser {

   public Dictionary<char, string> Dict { get;  }
   public List<Entity> EntityList  { get; }

   public ParseExits() {
            Dict = new Dictionary<char, string>();
            EntityList = new List<Entity>();
        }

   public void Parse(string[] txtFile) {
       ...
   }

   public void Add(List<char> gameMap) {
       ...
   }

我会说这是一种实现,因为我继承了整个接口。我实现了IParser(“模板”)。泛化是使用某些接口?这是正确的区分吗?

1 个答案:

答案 0 :(得分:0)

您可以说IParser 已实现(已实现)。泛化是不同的,并且在使用继承时发生。例如,基类“动物”和从动物继承的类:“老虎”。在这种情况下,您可以将其称为“ ”关系。 “老虎”是“动物”。 “老虎” 由“动物”概括

您的第二个问题更多是一个“通用的面向对象”问题。

继承与组合:通常来说,使用组合而不是继承更为健壮,而且摆脱基因并不容易。 (有关继承的Google组成)

接口与(抽象)类:阅读this StackOverflow答案