Свързани въпроси 'encapsulation'

Скриването на информация е абстракция или капсулиране?
Заглавието казва всичко, малко съм объркан, тъй като ми беше зададен въпрос, че обработката на информация по отношение на ООП е абстракция или капсулиране? Избрах абстракция, но все пак съм объркан, защото при капсулирането ние също скриваме...
207 изгледи

Защо ни е позволено да добавяме атрибути към клас динамично в Python?
В Python можем да добавяме атрибути към обект (клас) динамично, например: class Foo(object): pass foo = Foo() foo.a = 10 Въпросът ми може да е малко теоретичен. Така че е удобно. Но защо трябва да използваме тази функция??? Има ли...
293 изгледи

Проектиране на реентрантна библиотека в C
Да кажем, че изграждам библиотека, за да създавам quux в C. Quux се нуждаят от две променливи на състоянието, за да бъдат задействани успешно: static int quux_state; static char* quux_address; /* function to spork quuxes found in a file,...
1505 изгледи
schedule 07.11.2022

Кога класът трябва да използва свои собствени гетери/сетери срещу директен достъп до членовете?
Когато генерирате сетери и гетери в Eclipse, една от опциите е да използвате гетерите и сетерите в рамките на класа, вместо да осъществявате директен достъп до членовете на класа. Полезно ли е това ниво на вътрешно капсулиране на класа или прекалява...
1914 изгледи
schedule 24.10.2023

гетери и сетери за суперкласове?
Все още ли е стандартна практика да се предоставят гетери и сетери в суперкласа, за подкласове за достъп до атрибутите на суперкласа (с други думи, задаване на атрибутите като частни)? Или атрибутите трябва да бъдат достъпни директно (обявявайки...
798 изгледи
schedule 13.10.2022

Ограничаване на достъпа до методи на клас
Имам клас A, който има публични методи и се използва от 100 други класа, внедрени в различни приложения. Сега искам да направя тези публични методи частни, така че да няма достъп до тях от нови класове, но искам съществуващите клиентски класове да...
2311 изгледи
schedule 07.11.2023

Проблем с капсулирането с делегати?
Чудя се защо това работи? Например имам някакъв клас изпълнител , който изглежда така: public class Executor { public void Execute(Action action) { action(); } } Сега имам някакъв клас, който трябва да бъде изпълнен ,...
1208 изгледи
schedule 24.11.2023

Защита от добавяне на обект към NSMutableArray в публичен интерфейс
Искам да защитя достъпа до NSMutableArray в публичния интерфейс Опитвам се да направя това, като дефинирам свойството като NSArray в публичен интерфейс и като NSMutableArray в частен интерфейс като този: @interface Order : NSObject @property...
2883 изгледи

Трябва ли типовете да имат методи в дизайна, ориентиран към данни?
В момента моето приложение се състои от три вида класове. Трябва да следва дизайн, ориентиран към данни, моля, поправете ме, ако не е така. Това са трите вида класове. Примерите за кодове не са толкова важни, можете да ги пропуснете, ако искате....
1242 изгледи

Защо да инстанцирате променлива в конструктора и защо да използвате свойство за достъп до променлива
Имам няколко основни въпроса. Виждам много неща като по-долу в кода: public class User { private IList<Person> _person; public User() { _person = new IList<Person>(); } public IList<Person>...
83 изгледи

Python дескриптор протокол аналог на други езици?
Има ли нещо подобно на протокола за дескриптор на Python, внедрен на други езици? Изглежда като хубав начин за увеличаване на модулността/капсулирането, без да раздувате реализацията на вашия съдържащ клас, но никога не съм чувал за подобно нещо на...
857 изгледи
schedule 25.12.2023

Свойства на домейн обекти и капсулиране
Имам имейл обект с две свойства, етикет и стойност. Системният потребител трябва да потвърди имейла си, преди да може да го използва в системата. Процесът на проверка е много прост: Задайте код за активиране на имейла Изпратете имейл с кода...
443 изгледи

Защо c++ позволява достъп до частния член на клас чрез указател?
#include<iostream> using namespace std; class A { int value; public: A(){value = 1;} ~A(){} void print(){cout << value << endl;} }; int main() { A a; int* p = (int*)(&a); *p = 20;...
302 изгледи

Защото искат да подчертаят връзката, сочеща към активното съдържание, а не връзката, която в момента е в процес на кликване.
285 изгледи

Има ли начин да се декларират публични и частни методи за референтни класове на S4?
Предварително: съм наясно, че R е функционален език, така че, моля, не хапете ;-) Имам страхотен опит с използването на ООП подход за много от моите програми. Сега се чудя дали има начин да се направи разлика между публични и частни...
6633 изгледи

@David sum е сумата от всички стойности, получени от определен потребител. Получавате множество стойности от потребител, нали?
207 изгледи

Getters/setter на клас, който има карта
Каква е най-добрата практика при прилагане/осигуряване на гетери/сетери за клас, съдържащ карта? Най-често срещаната реализация, която виждам, е: public class MyClass { private Map<String, String> myMap; public getMyMap() { /* Return...
11870 изгледи

Getters и Setters са лош OO дизайн?
Гетърите и сетерите са лоши Прочитайки накратко горната статия, установявам, че гетерите и сетерите са лош OO дизайн и трябва да се избягват, тъй като противоречат на капсулирането и скриването на данни. Тъй като случаят е такъв, как може да се...
14056 изгледи
schedule 05.05.2024

Капсулиране на референтни типове в колекция
Декларирах клас с няколко свойства class Soil { public double AnglePhi { get; set; } public double AngleDelta { get; set; } . . . } Сега, за да манипулирам колекция от тях, създадох друг специален клас, само поради тази причина....
408 изгледи
schedule 06.05.2024

Каква е видимостта на @synthesized променливи на екземпляр?
Ако имате свойство във вашия публичен интерфейс като следното @interface MyClass : NSObject @property(strong) NSString *myProp; @end И след това го синтезирайте, като на практика синтезирате променливата: @implementation MyClass...
4167 изгледи