Это хороший способ иметь методы и свойства в одном классе 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)
Если методы этого класса вызывают другие методы из той же собственной/пользовательской структуры, то это может быть так ...
Если методы вызывают методы из других классов, которые являются экземплярами в другом месте, я бы сказал : Нет-вперед !