C # ООП Структура файла? - PullRequest
0 голосов
/ 10 мая 2010

Я только недавно начал программировать с объектами и рано пытаюсь освоить хорошие привычки.

Способ, которым я планирую структурировать свое приложение, состоит в том, чтобы иметь два файла:

1: Program.cs - этот файл будет содержать основную логику для приложения
2: Class.cs- Этот файл будет содержать все определения классов

Довольно просто.Что мне интересно, если у меня есть еще файлы для ... ну, скажи мне.

Любая помощь будет оценена.

Ответы [ 6 ]

7 голосов
/ 10 мая 2010

Принято считать, что каждый класс должен иметь свой собственный файл.

Program.cs - этот файл будет содержать основная логика для приложения

Я предполагаю, что когда вы говорите это, вы имеете в виду, что основной класс находится в этом файле. (Класс с точкой входа в приложение). Различные части логики должны быть выделены и размещены в классах, которые имеют смысл иметь их.

Ссылки на объектно-ориентированный дизайн:
http://www.csharphelp.com/2006/05/designing-object-oriented-programs-in-c/

http://www.informit.com/articles/article.aspx?p=101373

Ссылки на пространства имен:
http://www.csharphelp.com/2006/02/namespaces-in-c/

http://msdn.microsoft.com/en-us/library/dfb3cx8s.aspx

5 голосов
/ 10 мая 2010

Вот некоторые основы, которые помогут вам начать работу. =) * * Тысяча одна

  1. Соглашения об именах .Net, стандарты программирования и лучшие практики ;
  2. Объектно-ориентированные концепции ;
  3. Объектно-ориентированный дизайн ;
  4. Руководство по стилю кодирования C # ;
  5. Организация файлов
  6. Код конвенции C # ;
  7. Руководство по разработке для разработчиков библиотек классов ;

Архитектура вашего решения может выглядеть следующим образом:

  1. Один проект для ваших классов (Один класс на файл);
  2. Один проект для доступа к вашим данным;
  3. Один проект для вашего GUI;
  4. Один проект для вашего уровня интеграции (например, NHibernate , EntityFramework и т. Д.)

Помните, что вы должны сделать каждый фрагмент кода максимально пригодным для повторного использования. Сделав это, записав свои бизнес-объекты (ваши классы) в независимый проект, вы сможете впоследствии ссылаться на этот проект в другом, поэтому вам не придется перекодировать всю вашу бизнес-логику (методы и т. Д.) И бизнес объекты (классы, перечисления, интерфейсы и т. д.)

Объектно-ориентированный дизайн пытается обобщить все практические аспекты объекта и вывести его на самый верхний класс для ваших бизнес-объектов. Например:

// File: Person.cs
public class Person {
    public string Name { get; set; }
    public string Number { get; set; }
    // Some other general properties...
}

// File: Customer.cs
public class Customer : Person {
    public Customer() {
        Orders = new List<Order>();
    }
    public string CreditTerm { get; set; }
    public IList<Order> Orders { get; }
}

// File: Contact.cs
public class Contact : Person {
    public long PhoneNumber { get; set; }
    public long FaxNumber { get; set; }
}

// File: Supplier.cs
public class Supplier : Person {
    public Supplier() {
        Salesperson = new Contact();
    }
    public Contact Salesperson { get; }
}

Также рекомендуется указать, что означает каждый из ваших проектов. Возьмем, к примеру, приложение для управления клиентами:

MyCompany.MyCustomerMgmtSoftware.Domain <= Этот проект должен содержать определения ваших бизнес-классов </p>

MyCompany.MyCustomerMgmtSoftware.Data <= Этот проект должен содержать классы для доступа к данным в вашей DBRM. </p>

MyCompany.MyCustomerMgmtSoftware <= Этот проект обычно содержит ваш графический интерфейс </p>

MyCompany.MyCustomerMgmtsoftware.Mappings <= Этот проект должен содержать файлы сопоставления (например, при использовании NHibernate. </p>

Помогает ли это?

2 голосов
/ 10 мая 2010

Общепринятым принципом является наличие одного файла для каждого класса (или частичного класса, в случае приложений 2.0+). Для любого нетривиального приложения вы, конечно, не хотите, чтобы все определения классов были в одном файле.

2 голосов
/ 10 мая 2010

Каждый класс должен иметь свой собственный файл, а не один файл .cs, содержащий много классов. Я не уверен, не пробовал, но ваша IDE может обеспечить это.

2 голосов
/ 10 мая 2010

Мое единственное предложение - разбить каждый класс в Class.cs на собственный файл с именем ClassName.cs.

Это облегчит поиск и исправление ошибок в будущем.

Меньше кода в каждом файле = меньше поиска, чтобы найти код, вызывающий сбой.

1 голос
/ 10 мая 2010

Вам следует ознакомиться с этими рекомендациями

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...