Mahi8089 Ответов: 1

Это хороший способ иметь методы и свойства в одном классе C#


public  class Customer 
    {
 	Int32 CustomerID { get; set; }
        string Customer_Name { get; set; }
        string Customer_Add1 { get; set; }
	
	public   void save( )
        {

            _CustomerRepository.save(this);

        }

	 public   void Delete()
        {

            _CustomerRepository.Delete(this);

        }

    }


Что я уже пробовал:

я делал это, имея два разных класса: один для модального, а другой для методов, имеющих ссылку на модель.

будет ли это нарушать принципы проектирования?.Как мы работаем в корпоративных проектах?

Nick_3141592654

Я бы, как правило, не рекомендовал разделять ваши свойства и методы. Классы обычно инкапсулируют все такие связанные элементы, и обслуживание/совместное использование кода может стать сложнее, если вам нужно погрузиться в отдельные классы, чтобы увидеть, как все это работает вместе.

Это звучит так, как будто вы тяготеете к шаблону проектирования Model-View-Controller (MVC), который, безусловно, имеет ценность.

Я использую такой шаблон (вдохновленный MVC) в Android для достижения чистого отделения пользовательского интерфейса от бизнес-логики, и он использует класс для хранения всех настраиваемых параметров (как свойств) наряду с некоторыми вспомогательными методами для работы с такими вещами, как общие предпочтения. (Один такой класс "настройки" для каждой категории бизнес-логики, а не один глобальный класс, что было бы ужасно.)

Я бы посоветовал вам немного почитать о MVC, прежде чем переходить к какой-то новой парадигме.

Mahi8089

Привет, ник..
я вхожу asp.net веб-формы, а не MVC.
Я пытаюсь разработать слабо связанные классы с использованием интерфейсов и DI.

Nick_3141592654

Привет, махи, просто чтобы уточнить, MVC - это "шаблон" дизайна - он определяет структурную модель структуры программного обеспечения, которая применима к очень многим языкам. Везде, где вы используете принципы OO, вы можете использовать MVC. Весь смысл MVC заключается в том, что он обеспечивает разрыв связи между классами, которые в противном случае могут запутаться. Это зависит от вас, но я думаю, что это очень важно для вашего вопроса.

Mahi8089

Привет, ник, так это для того, чтобы модальное было отделено от методов и ссылок в разностных слоях?
я имею в виду class.save() или class.save(objcust), которые будут лучшим выбором для многоуровневой архитектуры.

CHill60

Класс без методов и класс без свойств ... хм ... Я не уверен, какой "принцип дизайна" это нарушит, но это вообще не имеет никакого смысла.
В вашем примере кода у вас есть свойства и методы в одном классе.
Однако это звучит так, как будто вы пытаетесь реализовать шаблон репозитория , который будет использоваться в проектах корпоративного уровня - Шаблон Репозитория[^]

Ralf Meier

Оставаясь на вашем примере, это зависит ...
На мой взгляд, свойства и методы должны быть в одном классе, если они принадлежат друг другу (методы делают что-то с данными свойств-пример прямоугольника, и это внутренние методы, такие как Inflate)
Если методы этого класса вызывают другие методы из той же собственной/пользовательской структуры, то это может быть так ...
Если методы вызывают методы из других классов, которые являются экземплярами в другом месте, я бы сказал : Нет-вперед !

1 Ответов

Рейтинг:
0

Khaja Moiz

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


Mahi8089

это означает, что ссылка модального класса в слой пользовательского интерфейса, слой БЛ и дл слоем..?