Вопросы с тегом «object-oriented»

Методология, которая позволяет моделировать систему как набор объектов, которыми можно управлять и манипулировать модульным способом

4
Отслеживание всех объектов класса
Я новичок в объектно-ориентированном программировании и продолжаю сталкиваться с этой проблемой. (Я программирую на Java) Я немного неохотно спрашиваю об этом, поскольку это кажется такой основной проблемой, но я не могу найти какую-либо информацию по этому вопросу или вопросы по этому поводу здесь, и ни один из Учебники, которые я …

6
Есть ли разница между интерфейсами и абстрактными классами, которые имеют только абстрактные методы?
Допустим, у нас есть абстрактный класс, и пусть этот класс имеет только абстрактные методы. Отличается ли этот абстрактный класс от интерфейса, который имеет только те же методы? Я хочу знать, есть ли какие-либо различия как в философском, объективном, так и в базовой реализации языка программирования между абстрактным классом только с …

4
Стиль программирования на Perl
Я работаю на Java, поэтому в основном я использую парадигму ООП во время кодирования. Я собираюсь начать работать в Perl, и мне было интересно, какова парадигма, которой следуют разработчики Perl. В вики упоминается, что он поддерживает много парадигм, но я не уверен, что понимаю это, поскольку это язык сценариев. Итак, …

3
Правила о конкретности типов параметров метода, возвращаемых типов и типов свойств
Некоторое время назад я читал своего рода «практическое правило» о конкретности типов параметров метода, типов возвращаемых данных и типов свойств, но я просто не помню его. В нем говорилось о том, что ваши типы возвращаемых данных должны быть как можно более конкретными, а типы параметров - как можно более абстрактными …

2
Как бы я комбинировал «Command» и «Composite» для имитации временной задержки?
В качестве учебного упражнения (я не в школе - просто пожилой парень, пытающийся выучить что-то новое), я пытаюсь написать имитацию логических элементов, которая включает задержку распространения. Пользователь также должен иметь возможность группировать ворота для создания объектов более высокого уровня. Я хочу применить шаблоны проектирования к моей проблеме, но мне трудно. …

2
Существует ли принцип интерфейса «спросите только то, что вам нужно»?
Я перешел на использование принципа проектирования и использования интерфейсов, который гласит: «просите только то, что вам нужно». Например, если у меня есть куча типов, которые можно удалить, я сделаю Deletableинтерфейс: interface Deletable { void delete(); } Тогда я могу написать общий класс: class Deleter<T extends Deletable> { void delete(T t) …

11
Должно ли изображение иметь возможность изменять размеры в ООП?
Я пишу приложение, в котором будет Imageсущность, и у меня уже возникают проблемы с определением, за кого должна отвечать каждая задача. Сначала у меня есть Imageкласс. У него есть путь, ширина и другие атрибуты. Затем я создал ImageRepositoryкласс, для получения изображений с помощью одного и проверенного метода, например: findAllImagesWithoutThumbnail(). Но …

5
ООП: В каких ситуациях дизайн на основе классов лучше, чем дизайн на основе интерфейса?
Я читал сайт JDOM . Почему JDOM API определяется в терминах конкретных классов, а не интерфейсов? Джейсон Хантер суммирует аргументы против интерфейсного API для JDOM: С интерфейсами все становится фабрикой, элементы должны «импортироваться» в новые документы, а не просто добавляться, такие функции, как долгосрочная сериализация, не могут быть гарантированы, и …

5
Когда прекратить наследование?
Однажды я задал вопрос о переполнении стека о наследовании. Я сказал, что проектирую шахматный движок в ООП-моде. Таким образом, я наследую все свои части от абстрактного класса Piece, но наследование все еще продолжается. Позвольте мне показать по коду public abstract class Piece { public void MakeMove(); public void TakeBackMove(); } …

2
Какой проект PHP с открытым исходным кодом имеет «идеальный» дизайн ООП, из которого я могу поучиться? [закрыто]
В настоящее время этот вопрос не очень подходит для нашего формата вопросов и ответов. Мы ожидаем, что ответы будут подтверждены фактами, ссылками или опытом, но этот вопрос, скорее всего, вызовет дебаты, споры, опрос или расширенное обсуждение. Если вы считаете, что этот вопрос можно улучшить и, возможно, вновь открыть, обратитесь за …


7
Проверка, возвращает ли метод значение false: присваивать результат временной переменной или помещать вызов метода непосредственно в условное выражение?
Является ли хорошей практикой вызывать метод, который возвращает значения true или false в операторе if? Что-то вроде этого: private void VerifyAccount() { if (!ValidateCredentials(txtUser.Text, txtPassword.Text)) { MessageBox.Show("Invalid user name or password"); } } private bool ValidateCredentials(string userName, string password) { string existingPassword = GetUserPassword(userName); if (existingPassword == null) return false; …

4
Что плохого в возвращении хеш-таблицы из открытого метода и когда имеет смысл это делать?
Каковы проблемы проектирования при возврате хеш-таблицы из открытого метода, когда вы хотите вернуть несколько элементов вместо создания класса и возврата объекта этого? Если у него есть проблемы, то при каких обстоятельствах имеет смысл это делать? Как меняется ответ на этот вопрос в зависимости от того, является ли язык динамичным или …

7
Какие функции необходимы для объектной ориентации?
Мне просто интересно, какие именно функции должен предоставлять язык или библиотека, чтобы его можно было определить как «объектно-ориентированный». Является ли объектная ориентация чем-то, чего можно более или менее достичь в любом языке программирования общего назначения с приличными функциями? Или это может быть достигнуто только в тех языках, которые специально рекламируют, …

4
Должно ли создание объекта неявно или явно создавать файл?
Я создаю объект, единственной целью которого является чтение в файле одного формата и создание другого в другом формате. Лучше всего неявно создавать выходной файл во время инициализации объекта или иметь открытый метод, который дает пользователю выбор, когда этот файл будет создан?

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