oop- все статьи тега


Хитрости объектно-ориентированного программирования. Часть 2: Закон Деметры

Многопоточность  —  тема, которую боятся многие программисты. Вероятно, это связано с тем, что многопоточные программы, если написаны неправильно, могут вызывать больше ошибок, чем однопоточные, и ущерб, нанесенный несколькими потоками, бывает труднее оценить. Некоторым тяжело дается понимание работы многопоточности, а кто-то даже не старается ее ...

Хитрости объектно-ориентированного программирования. Часть 4: Шаблон Starter для Android

Приветствую вас, Java-разработчики! Размышляете над тем, какой фреймворк освоить, чтобы стать полноценным специалистом? Спешу вас обрадовать  —  это как раз тема данной статьи. Как-то я уже делился с вами свои видением плана по овладению всеми необходимыми профессиональными навыками Java-разработчика.А теперь настало время рассказать о важнейших ф...

Хитрости объектно-ориентированного программирования. Часть 6 SLAP для функций

В мире веб-дизайна точки останова CSS помогают создавать более надежный, отзывчивый веб-сайт, определять, когда показывать или скрывать определенные элементы, изменяя размер компонентов или растягивая их на мобильных устройствах, чтобы обеспечить беспроблемный пользовательский интерфейс. В этой статье мы обсудим, как применять точки останова CSS в...

Хитрости объектно-ориентированного программирования. Часть 5: Правило бойскаутов

Инструментов, плагинов, сайтов и ресурсов в индустрии дизайна хоть отбавляй, и все они обещают сделать ваш рабочий процесс более продуктивным, а вас самих  —  более продвинутыми специалистами. За годы работы я много чего перепробовал, но лишь немногие из этих инструментов действительно выделяются в общей массе. Список ниже  —  просто лучшее из луч...

Краткое руководство по ООП в JS

Моя супруга всегда хотела, чтобы у нас был радиоприемник, который красиво выглядит; легко регулируется; обладает хорошим качеством звука; проигрывает станции из интернета.  Современный рынок предлагает большой выбор модных интернет-радиоприемников. Но все они оснащены либо сенсорным экраном, либо дорогим ЖК-дисплеем, либо прои...

Эффективное использование словаря (C#) как альтернатива оператору If

Всё больше наших коллег на практике предпочитают избегать применения операторов if. Эти условия, по их мнению, усложняют и прибавляют багов в наши приложения. Но условия лежат в основе программирования, и мы не можем полностью избавиться от операторов if — мы можем лишь сократить их использование. Что такое словарь? Словарь — это структура да...

Java: когда использовать атрибуты, когда использовать параметры метода?

Я попытался погуглить и поискать этот вопрос, но почему-то не смог найти ничего относящегося к нему. Мне интересно, есть ли руководство bbest-practice о том, когда использовать атрибуты в классе, а когда нет, а вместо этого использовать параметры для отдельных методов. Многие случаи мне понятны, например public class Dog { private name; public setName(...) {....} } Но иногда мне не совсем понятно, что лучше использовать. Например, следующее, либо использовать: public class calculation ...

Наследование C++ и включает в себя

Я не новичок в C++, однако я также определенно не эксперт... и все же:) Я пытаюсь понять, как работает наследование. У меня есть класс, производный от базового класса: class Base {} И #include "Base.h" class Derived : public Base {} В моем базовом классе я пытаюсь создать статический метод, который возвращает указатель на производный объект класса: #include "Derived.h" class Base { static Derived* getDerived(); } Теперь я думал, что, поскольку это был статический член, я мог б ...

Как вызвать метод enum basis, по какому типу он передается?

У меня есть ниже перечисление, как показано ниже, из которого мне нужно вызвать его соответствующий метод, основанный на том, какой тип события это. public enum EventType { EventA { // cannot call this method public Map<String, Map<String, String>> execute(String eventMapHolder) { final Map<String, String> holder = parseStringToMap(eventMapHolder); if (holder.isEmpty() || Strings.isNullOrEmpty(holder.get("m_itemId"))) { return ImmutableMap.of(); ...

Как печатать атрибуты класса без создания экземпляра объекта в Python?

Согласно этому сообщению, я могу перечислить переменную экземпляра, обратившись к str(self.__dict__), но я не могу понять, как это сделать с переменными класса. Вот чего я хочу избежать: # I would like to print out class attributes by overriding `__str__` for that class. class circle(object): radius = 3 def __str__(self): # I want to avoid instantiation like this. return str(circle.radius) print(circle()) # I want to avoid instantiation. why can't I just print(circle) ...

Ruby-как проверить наличие нулевой или пустой строки из консоли (stdin)

Я очень новичок в Руби, поэтому, пожалуйста, потерпите меня... В тексте на Ruby есть пример кода, который делает это: str = gets exit if str.nil? || str.empty? str.chomp! temp, scale = str.split(" ") Мои запросы следующие: Учитывая, что gets будет возвращаться только до и включая cr зачем тестировать пустую строку? Если вы проверяете следующее: puts nil.to_s.empty? puts "".to_s.empty? puts "".length #the empty string : equates to 0 puts nil.to_s.length #the 'to stri ...

Может ли Алмазная проблема быть действительно решена?

Типичной проблемой в ОО-программировании является Алмазная задача. У меня есть родительский класс A с двумя подклассами B и C. A имеет абстрактный метод, B и C реализуют его. Теперь у меня есть подкласс D, который наследует B и C. проблема алмаза теперь заключается в том, какую реализацию должен использовать D, одну из B или одну из C? Люди утверждают, что Java не знает проблемы алмазов. У меня может быть только множественное наследование с интерфейсами, и поскольку они не имеют реализации, у ...

Следует ли вообще помещать константы в интерфейс?

Я знаю, что размещение констант в интерфейсе обычно считается плохой практикой, но... Я использую шаблон наблюдателя для трансляции событий от объекта к слушателю. interface DownloadListener { public void sendEvent(int eventId); } Вещатель использует постоянные ints, чтобы сообщить слушателю, какое событие произошло. class DownloadTask { public static final int EVENT_DOWNLOAD_STARTED = 1; public static final int EVENT_DOWNLOAD_COMPLETED = 2; //should these go here? Do ...

Свойства по умолчанию в VB.NET?

В первые дни .NET, я полагаю, что был атрибут, которым можно было украсить класс, чтобы указать свойство по умолчанию. Согласно некоторым статьям, которые я нашел, это, кажется, было вырвано из рамок в какой-то момент, потому что это было немного запутано, и я могу видеть, как это происходит. И все же, есть ли другой способ получить функциональность, которую он предоставляет? Это выглядело примерно так: <DefaultProperty("Value")> _ Public Class GenericStat ... Public Prope ...

Как реализовать абстрактный класс в laravel 5.3

Я следовал курсу Laracasts Api, и в какой-то момент я получаю эту ошибку Whoops, looks like something went wrong. ReflectionException in Container.php line 809: Class AppAcmeTransformersLessonTransformer does not exist Я создал абстрактный класс в приложении Acme TransformersTransformer.php <?php namespace AppAcmeTransformers; abstract class Transformer { //transformCollection the lessons data and return only requried fields public function transformCollection($items ...

Как включить макросы в Python?

Это похожий вопрос, но моя цель-не производительность, а читаемость. Предположим, у меня есть разные Behaviours, и они разделяют повторяющуюся функцию f1(). from abc import ABCMeta, abstractmethod class Behavior: __metaclass__ = ABCMeta @abstractmethod def run(self): pass class Behavior1(Behavior): def __init__(self, data): self.data = data def run(self): def f1(): print(self.data*localVar) localVar = 1. f1() clas ...

позволяет ли VB6 ссылаться на экземпляр формы как на синглет, просто называя его тип данных? или что происходит?

Я вижу код типа "Unload frmMain", где из того, что я могу сказать frmMain-это имя типа/модуля, и я не думаю, что это также может быть одновременно имя переменной типа" ObjFrmMain". Тем не менее, эта команда успешно побуждает рассматриваемую форму к выгрузке. Так используется ли тип данных в качестве псевдонима для его единственного существующего экземпляра? Или, может быть, для всех его экземпляров? Делает ли VB6 аналогичные вещи с типами данных, отличными от производных от Форма? ...

В чем разница между методом и функцией?

Может ли кто-нибудь дать простое объяснение методов против функций в контексте ООП? ...

PHP class extends не работает почему и это как правильно расширить класс?

Привет, я пытаюсь понять, как inherteince работает в PHP с использованием объектно-ориентированного программирования. Основной класс-компьютер, наследующий класс-мышь. Я расширяю компьютерный класс с помощью класса мыши. Я использую __construct в каждом классе, когда я создаю класс, я использую тип pc сначала и если у него есть мышь после. По какой причине компьютер возвращает null? почему это так? class Computer { protected $type = 'null'; public function __construct($type) { ...

переопределенный метод вызывается дважды

У меня есть фрагмент кода <?php abstract class Testing{ public abstract function tester(); public function testing(){ $this->tester(); } } class Test extends Testing{ public function tester(){ echo 'test'; } } $t = new Test(); $t->testing(); Предполагается, что у меня есть выход test, но выход, который я получаю, - это testtest? Почему tester() вызывается дважды? Ссылка ссылка на ideon ...