Популярные вопросы по тегу OOP

Это плохая практика - заставлять сеттер возвращать "это"?

... отому, что он 14 может заставить этот сеттер делать что-то 13 еще полезное. Я видел, как этот шаблон использовался 12 в некоторых местах (например, JMock, JPA), но 11 он кажется необычным и обычно используется 10 только для очень хорошо определенных API, где 9 этот шаблон используется повсюду. Обновление: То, что 8 я описал, очевидно, верно, но на самом деле 7 я ищу некоторые мысли о том, прие ...

Что такое ковариантный тип возвращаемого значения?

... в Java? В объектно-ориентированном 1 программировани ...

Получить свойство класса PHP по строке

... зову его magic. Так что же такое magic? $obj->Name = 'something'; $get = $obj->Name; было бы как 1 ... magic($obj, 'Na ...

Что в C# эквивалентно PHP "self ::"?

... ользовать, например, self:: PHP 5 вместо класса имя? Итак, в приведенном ниже 4 примере, вместо того, чтобы сказать Customer.DatabaseConnectionExists(), как 3 я могу сказать что-то вроде Self.DatabaseConnectionExists(), например, позже, если 2 я изменю имя класса, мне не придется менять 1 все префиксы? class Customer { public string FirstName { get; set; } public string LastName { get; set; } public static Cus ...

Экземпляр анонимного класса - это плохая идея?

... constructor(name) { this.name = name; } getName() { return this.name; } }('Foo'); console.log(entity.getName()); // Foo Что 2 за этим делается, какие преимущества это 1 принесет и какие ...

В чем разница между шаблоном стратегии и шаблоном посетителя?

... е 4 могли бы вы дать мне контекстную информацию 3 или пример, чтобы я мог получить четкое 2 ...

Абстрактное свойство машинописного текста

... епции 8 ООП, но я просто не понимаю концепцию абстрактных 7 свойств. Я понимаю, что вам нужно переопределить 6 / реализовать абстрактные члены вашего базового 5 класса в дочернем классе. Но все же для 4 чего он нужен? Я понимаю концепцию абстрактных 3 мето ...

Как использовать параметр «Отправитель» с оператором «Как» для нескольких классов одновременно?

... nder: TObject); begin (Sender As TComboBox).Text := ''; end; ... потому 6 что оператор As не допускает гибкости. Он 5 должен знать класс, чтобы разрешить .Text, идущий 4 после (). Иногда код наполняется похожими functions и 3 procedures, потому что нам нужно проделать то же самое 2 с похожими визуальными элементами управления, которые 1 мы не можем указать. Это только пример использования. Обычно я использую эти коды ...

DDD - модель сохраняемости и модель предметной области

... ую область и классы, имея в 13 виду только проблемы предметной области; это 12 нормально. Но после этого, когда мы создаем 11 наши репозитории или любую другую систему 10 сохранения данных, должны ли мы создать 9 другое представление нашей модели для использования 8 на уровне сохранения? Я думал, что наша модель 7 предметной об ...

Как инициализировать ссылочную переменную-член класса?

... int getT() { return t; } }; int main() { int x = 20; Test t1(x); cout << t1.getT() << " "; x = 30; cout << t1.getT() << endl; return 0; } При использовании 2 компилятора gcc отображается следующая ошибка est.cpp: In constructor ‘Test::Test(int&)’: est.cpp:8:5: error: uninitializ ...

Клонировать объект без ссылки javascript

... if (Object.prototype.toString.call(this) === '[object Array]') { var clone = []; for (var i=0; i<this.length; i++) clone[i] = this[i].clone(); return clone; } else if (typeof(this)=="object") { var clone = {}; for (var prop in this) if (this.hasOwnProperty(prop)) clone[prop] = this[prop].clon ...

Как преобразовать List <Interface> в List <Class> в с #

... et;} } и 3 класс, реализующий этот интерфейс public class ReaderInfo : IReaderInfo { string DisplayName {get;} } Затем я 2 создал функцию, которая возвращает список public List&lt;ReaderInfo&gt; GetReaders { var readers = ...

Как лучше всего читать параметры конфигурации из файла конфигурации в Java?

... ния 10 я не могу напрямую поместить в отдельный 9 Interface. Я думаю, это повлияет на производительность. Предложите 8 мне лучший способ сделать это. ОБНОВЛЕНИЕ: Могу ли я 7 использовать отдельный конечный класс для 6 деталей конфигурации? размещение всех деталей 5 конфигурации как констант в отдельном public final class (Чтобы 4 сразу прочитат ...

Как я могу получить доступ к частному конструктору класса?

... структору 4 класса и создать его экземпляр? Я ответил 3 «Нет», но ошибся. Можете ли вы объяснить, почему 2 я был неправ, и привести пример создания 1 объекта с помощь ...

Когда и почему вы запечатываете класс?

... и C++ / CLI ключевое слово sealed (или NotInheritable в 8 VB) используется для защиты класса от любого 7 шанса наследования (класс не наследуется). Я 6 знаю, что одна из особенностей объектно-ориентированного 5 программирования - это наследование, и я 4 чувствую, ...

Как я могу вызвать «базовую реализацию» переопределенного виртуального метода?

... virtual void X() { Console.WriteLine("x"); } } class B : A { override void X() { Console.WriteLine("y"); } } class Program { stati ...

В чем разница между SRP и ISP в SOLID? (Принцип единой ответственности и принцип разделения интерфейса)

... звучит как просто применение 6 SRP к интерфейсам, а также к классам. В 5 конце концов, если интерфейс отвечает только 4 за одну концептуальную вещь, вы не сможете 3 разбить его дальше. Я что-то упуск ...

В чем разница между ассоциацией, агрегацией и составом?

... нием 2 и составом? Объясните, пожалуйста, в плане 1 реализац ...

Когда следует использовать классы друзей?

... классов? например, если 9 я объявлю класс foo другом класса base, будет 8 ли класс der (производный от base) также иметь 7 в качестве друга foo? В каких особых случаях следует использовать 6 класс друзей? Я создаю оболочку winapi, в 5 которой хочу сделать класс WinHandle другом 4 класса Widget (для доступа к ...

C++ переопределяет унаследованные методы

... cout &lt;&lt; &quot;I'm the father&quot; &lt;&lt; endl; }; }; class Child: public Father { void init () { cout &lt;&lt; &quot;I'm the child&quot; &lt;&lt; endl; }; }; int main (int argc, char** argv) { Chi ...

Наследование и внутренние классы в Python?

... alice и bob. Спасибо. &gt;&gt;&gt; class A: ... yay = True ... class Foo: ... alice = True ... &gt;&gt;&gt; class B(A): ... nay = False ... class Foo: ... bob = False &gt;&gt;&gt; B.yay True &gt;&gt;&gt; B.Foo.alice Traceback (most recent call last): Fil ...

Является ли получение квадрата из прямоугольника нарушением принципа подстановки Лискова?

... ника является классическим примером 2 нарушения принципа замещения Лиско ...

Простой способ расширения класса в Node.js

... osaicStreamer{ } Я не могу 3 найти простой способ реализовать это в Node.js. В 2 моем проекте узла в BlockMosaicStreamer.js у меня есть: 'use strict'; function BlockM ...

В чем разница между статическим классом и нормальным классом?

... static class SinifA { public static void method1() { Console.WriteLine("Deneme1"); } } public static class SinifB { public static void method2() { Console.WriteLine("Deneme2"); } } public class ...

Как связаны ООП и шаблоны дизайна?

... дельно? Можем 3 ли мы поверить, что тот, кто знает шаблоны 2 дизайна, определенно ста ...

Присоединение декоратора ко всем функциям внутри класса

... ункциям внутри класса 7 в общем, вместо того, чтобы явно указывать 6 его для каждой функции. Я полагаю, что тогда 5 это становится своего рода аспектом, а не 4 декоратором, ...

Как переопределить статическое свойство родительского объекта и позволить родительскому объекту получить доступ к новому значению в PHP?

... GetSingle(self::$databaseTable, $id); Utils::copyToObject($this, $this-&gt;data, self::$databaseFields); } public static function Load($id) { return new self($userID); } public static function Create($data) { $id = Database::Insert(self::$databaseTable, $data); return ne ...

У интерфейсов PHP есть свойства?

... PHP свойства ил ...

Геттер и сеттер?

... lic function setFirstField($x) { $this-&gt;firstField = $x; } public function getSecondField() { return $this-&gt;secondField; } public function setSecondField($x) { $this-&gt;secondField = $x; } } или 1 только общедосту ...

Является ли C++ объектно-ориентированным языком?

... гда слышал, что C++ не объектно-ориентированный, а 8 скорее «C с классами». Итак, когда я упомянул 7 интервьюеру, что C++ на самом деле не является 6 объектно-ориентирован ...

Вызов родительского родительского метода, который был переопределен родителем

... _init__() def do_thing(self): # stuff different than Grandfather stuff class Son(Father): def __init__(self): super(Son, self).__init__() ...

Разница между наследованием и составом

... 2 я хочу реализовать шаблон композиции, как 1 я могу это сделать ...

Разница между super() и прямым вызовом суперкласса

... ркласса: class C(B): def __init__(self): B.__init__(self) Я вижу, что 7 также можно заменить B.__init__(self) на super(B, self).__init__() и в python3 super().__init__(). Есть 6 ли у этого варианта преимущества или недостатки? По 5 крайней мере, для меня имеет смысл вызывать 4 его из B н ...

Как наследовать от двух классов

... ые 3 наследуются от него. Но если у меня есть 2 человек, который одновременно является St ...

Юля: ООП или нет

... или struct в c ++? Как объявить его с помощью 1 таких членов, как ...

Может ли один абстрактный класс расширять другой абстрактный класс и увеличивать функциональность

... бстрактный класс. Я хочу расширить 4 абстрактный класс другим абстрактным классом, а 3 затем реа ...

Разница между репозиторием и уровнем обслуживания?

... оектирования 4 ООП? Я работаю над приложением ASP.NET MVC 3 3 и пытаюсь понять эти шаблоны проектирования, но 2 мо ...

Является ли PHP объектно-ориентированным?

... ированным 5 языком? Если нет, то как насчет фреймворка 4 CakePHP? Это объектно-ориентированная MVC ...

Что значит установить объявление функции равным 0? Как можно присвоить функции целое число?

... AM, LPARAM) = 0; Что здесь происходит? Как 4 можно присвоить функцию целому числу? Или 3 он присваивает его NULL? Нужно ли вам это делать, если 2 вы хотите ...

Можно ли получить неперечислимые унаследованные имена свойств объекта?

... ый 15 возвращает все перечисляемые свойства объекта, независимо 14 от того, являются ли они собственными свойствами 13 или унаследованы от цепочки прототипов. 3) Object.getOwnPropertyNames(obj), который 12 возвращает все собственные свойства объекта, перечислимые 11 или нет. У нас также есть такие методы, как 10 hasOwnProperty(prop), позволяющий нам проверять, унаследовано 9 ли свойство ...

Вызов функции из класса в Python - другой способ

... .b = y def testAddition (self): return (self.a + self.b) def testMultiplication (self): return (self.a * self.b) Я вызываю 10 этот класс из другого файла с именем main.py 9 со следующим кодом: from testClass import MathsOperations xyz = MathsOperations(2, 3) print xyz.testAddition() Работает без проблем. Однако 8 я хотел использовать этот класс более простым 7 способом. Я поместил следующий код в файл 6 testClass ...

Python __init__ и метод класса, должны ли они иметь одинаковое количество аргументов?

... on, они привязаны к классу, а не к экземпляру, что 8 пока довольно ясно. Но мой вопрос: обязательно 7 ли иметь такое же количество аргументов 6 в возвращаемом экземпляре метода класса, как 5 в __init__. Точнее: class MyClass(object): def __init__(self,name): self.name=name @classmethod def altern ...

Уже определено в .obj - никаких двойных включений

... oost/asio.hpp&gt; из client.cpp, я получаю ошибки, хотя 7 он также включен в main.h. Как видите, я не дважды определяю/включаю 6 свой класс, он включается ровно один раз в main.h. Так что же 5 здесь происходит? Я прочитал this answer, но это не 4 помогло, так как оно предполагает двойное 3 включение. Примите во внимание этот факт, прежде 2 чем голосовать за дубликат, потому что это 1 просто означает безжалостное обезглавл ...

Почему мы не должны использовать защищенную статику в java

... bles in Java? Первый комментарий 3 с 36 положительными голосами был: Если вы 2 когда-нибудь увидите protected static, бегит ...

Что означают «методы S3» в R?

... ок в R, я не знаю, что 8 такое методы и объекты S3. Я обнаружил, что 7 существуют объектные системы S3 и S4, и 6 некоторые рекомендуют по возможности использовать 5 S3 вместо S4 (см. Руководство по стилю ...

Как передать произвольные аргументы в план фляги?

... . Как я могу передать 7 эту информацию в план? В качестве примера 6 я включил код ниже: api.py: class MyApi(object): def __init__(self, databaseURI): self.app = Flask(__name__) self.app.register_blueprint(myblueprint) blueprint.py myblueprint= Blueprint('myblueprint', __name__) @myblueprint.route('/route', methods=['GET']) def route(): database = OpenDatabaseConn ...

Возможно ли в Python объявить, что этот метод должен быть переопределен?

... ''' To override ''' pass def do_some_boring_stuff(): return 2 + 2 И 5 класс B, подкласс A: class B(A): def do_stuff() return 4 Есть ли способ объявить, что 4 метод A.do_some_cool_stuff должен быть переопределен, и, возможно, что 3 при попытке со ...

Можно ли получить имя метода из метода в PHP?

... function something() { $thisMethodName = method_get_name(); } Где method_get_name() ...

Вы не должны наследовать от std :: vector

... чится, я буду просто счастлив. Кроме 8 того, не считая того, что какой-нибудь идиот 7 может написать что-то вроде std::vector&lt;int&gt;* p = new MyVector Есть ли другие 6 реальные опасности при использовании MyVector? Говоря 5 «реалистично», я отбрасываю такие вещи, как 4 «представьте себе функцию, которая принимает 3 указатель на вектор» ... Итак, я изложил 2 свою позицию. Я согреши ...

Имена динамических классов в php

... 9 рекурсивно с использованием include_once(). Я делаю это 8 для того, чтобы я (и другие) могли легко 7 добавить новый тип поля, только добавив 6 один файл Что я хочу знать: есть ли способ 5 обосновать новый объект на основе одного 4 из этих динамически включаемых расширяющихся 3 классов на основе имени переменной? например 2 класс с именем checkbox: $field_type = 'checkbox'; $field = new ...