Вопросы с тегом «class-design»

Общие рекомендации о том, как разрабатывать классы с использованием лучших известных отраслевых практик.

5
Как вы можете разложить конструктор?
Допустим, у меня есть класс Enemy, и конструктор будет выглядеть примерно так: public Enemy(String name, float width, float height, Vector2 position, float speed, int maxHp, int attackDamage, int defense... etc.){} Это выглядит плохо, потому что конструктор имеет так много параметров, но когда я создаю экземпляр Enemy, мне нужно указать все …

9
Когда вы должны использовать закрытый / внутренний класс?
Чтобы уточнить, о чем я спрашиваю, public class A{ private/*or public*/ B b; } против public class A{ private/*or public*/ class B{ .... } } Я могу определенно подумать о некоторых причинах, чтобы использовать одну или другую, но то, что я действительно хотел бы видеть, - это убедительные примеры, которые …

7
Какова идея именования классов с суффиксом «Info», например: «SomeClass» и «SomeClassInfo»?
Я работаю в проекте, который имеет дело с физическими устройствами, и меня смутило, как правильно назвать некоторые классы в этом проекте. Учитывая фактические устройства (датчики и приемники) - это одно, а их представление в программном обеспечении - другое, я думаю о присвоении имен некоторым классам с помощью шаблона имени суффикса …

4
Зачем определять объект Java, используя интерфейс (например, Map), а не реализацию (HashMap)
В большинстве кодов Java люди видят объекты Java следующим образом: Map<String, String> hashMap = new HashMap<>(); List<String> list = new ArrayList<>(); вместо того: HashMap<String, String> hashMap = new HashMap<>(); ArrayList<String> list = new ArrayList<>(); Почему предпочтительнее определять Java-объект с использованием интерфейса, а не реализации, которая фактически будет использоваться?

7
В какой момент неизменные классы становятся бременем?
При разработке классов для хранения вашей модели данных, которые я прочитал, может быть полезно создавать неизменяемые объекты, но в какой момент бремя списков параметров конструктора и глубоких копий становится слишком большим, и вы должны отказаться от неизменного ограничения? Например, вот неизменяемый класс для представления именованной вещи (я использую синтаксис C …


4
«Неправильно» / Плохой дизайн, чтобы поместить работника темы / фона в класс?
У меня есть класс, который будет читать из Excel (C # и .Net 4), и в этом классе у меня есть фоновый работник, который будет загружать данные из Excel, в то время как пользовательский интерфейс может оставаться отзывчивым. У меня такой вопрос: плохо ли иметь фонового работника в классе? Должен …


3
Может ли класс RxJava Flowable законно иметь 460 методов?
Я только начинаю с RxJava , Java-реализации ReactiveX (также известной как Rx и Reactive Extensions ). То , что действительно поразило меня массовый размер RxJava в текучий классе : он имеет 460 методы! По честному: Есть много методов, которые перегружены, что значительно увеличивает общее количество методов. Возможно, этот класс следует …

4
Насколько конкретным должен быть шаблон единой ответственности для классов?
Например, предположим, что у вас есть консольная игровая программа, которая имеет все виды методов ввода / вывода в консоль и из консоли. Будет ли это быть умным , чтобы держать их все в одном inputOutputклассе или разбить их на более конкретных классы , как startMenuIO, inGameIO, playerIO, gameBoardIOи т.д. , …

5
Базовые классы как фабрики?
В выходные я писал некоторый код, и мне захотелось написать фабрику как статический метод в базовом классе. Мой вопрос состоит в том, чтобы просто знать, является ли это актуальным подходом? Я чувствую, что это не может быть связано с тем, что базовый класс знает о производном классе. Тем не менее, …
14 c#  class-design 

3
Абстрактный базовый класс с интерфейсами как поведением?
Мне нужно спроектировать иерархию классов для моего проекта на C #. По сути, функциональные возможности классов аналогичны классам WinForms, поэтому давайте возьмем в качестве примера инструментарий WinForms. (Однако я не могу использовать WinForms или WPF.) Есть некоторые основные свойства и функциональные возможности, которые должен обеспечить каждый класс. Размеры, положение, цвет, …

2
Дизайн: метод Object против метода отдельного класса, который принимает Object в качестве параметра?
Например, лучше ли сделать: Pdf pdf = new Pdf(); pdf.Print(); или: Pdf pdf = new Pdf(); PdfPrinter printer = new PdfPrinter(); printer.Print(pdf); Другой пример: Country m = new Country("Mexico"); double ratio = m.GetDebtToGDPRatio(); или: Country m = new Country("Mexico"); Country us = new Country("US"); DebtStatistics ds = new DebtStatistics(); double …

4
Большой класс с единственной ответственностью
У меня есть Characterкласс 2500 строк, который: Отслеживает внутреннее состояние персонажа в игре. Загружает и сохраняет это состояние. Обрабатывает ~ 30 входящих команд (обычно = перенаправляет их на Game, но некоторые команды только для чтения отвечают немедленно). Получает ~ 80 звонков Gameо действиях, которые он предпринимает, и о действиях других. …

2
Должен ли я выставлять «вычисленное» значение как свойство или метод?
У меня есть класс C #, который представляет тип контента в системе управления веб-контентом. У нас есть поле, которое позволяет редактору веб-материалов вводить HTML-шаблон для отображения объекта. Он в основном использует синтаксис handlebars для подстановки значений свойств объекта в строку HTML: <h1>{{Title}}</h1><p>{{Message}}</p> С точки зрения дизайна класса, я должен представить …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.