控制代码中的边界实体

时间:2012-06-08 11:45:56

标签: c# design-patterns model-view-controller uml iconix

有很多关于Boundary,Entity,Control类和ICONIX进程以及Robustness Diagrams的文本。但是实际上没有代码示例,我们如何在代码中实现控制类?这是我的代码示例,我想检测此代码中的控件类在哪里?

班级:

Program_Boundary:边界类

人:实体

人:实体(因为它有CRUD操作)

Control类在哪里?这个例子有一个控件类:

class Program_Boundary // BoundaryClass
{
    static void Main(string[] args)
    {
        People people = new People();
        Person person;
        for (int i = 0; i < 5; i++)
        {
            Console.WriteLine("Enter name:");
            string name = Console.ReadLine();
            Console.WriteLine("Enter family:");
            string family = Console.ReadLine();
            person = new Person(name, family);
            people.Add(person);
        }
    }
}
class People //Entity Class
{
    List<Person> person_list = new List<Person>();
    public People()
    {

    }
    public void Add(Person person)
    {
        person_list.Add(person);
    }
    public void Delete(string name, string family)
    {
        for (int i = 0; i < person_list.Count; i++)
            if (person_list[i].name == name && person_list[i].family == family)
                person_list.Remove(person_list[i]);
    }
    public void Update(string name, string family, string new_name, string new_family)
    {
        for (int i = 0; i < person_list.Count; i++)
            if (person_list[i].name == name && person_list[i].family == family)
            {
                person_list[i].name = new_name;
                person_list[i].family = new_family;
            }
    }
}
class Person //Entity Class
{
    private string _name;
    private string _family;

    public Person(string n,string f)
    {
        _name = n;
        _family = f;
    }
    public string name { get { return _name; } set { _name = value; } }
    public string family { get { return _family; } set { _family = value; } }
}

1 个答案:

答案 0 :(得分:0)

您的代码段中没有控件类。控件类将是一个类,负责执行与给定用例相对应的一组操作。例如,您可以使用更新人员详细信息。例如,它可以涉及这些操作:

  
      
  1. 找到这个人。
  2.   
  3. 获取新数据。
  4.   
  5. 更新个人记录。
  6.   

您可以创建一个控制对象,让我们称之为UpdateController,它将通过寻址相关实体和边界类来执行这3个操作以完成工作。控制器本身不执行实际操作,而是将它们委托给相关模块。控制器是调用和同步所需操作的控制器。

另请参阅此处:In UML class diagrams, what are Boundary Classes, Control Classes, and Entity Classes?