Что такое антоним инкапсуляции?
С помощью онлайн словарь инструменты не помогает. Я думаю, что способ инкапсуляции используется в информатике не совсем соответствует его значению на простом английском языке.
что такое антоним версии encaspulate в компьютерной науке? Более конкретно, что такое антоним для инкапсуляции, который будет работать как имя функции.
почему я должен заботиться? Вот моя мотивация:
// A class with a private member variable;
class Private
{
public:
// Test will be able to access Private's private members;
class Test;
private:
int i;
}
// Make Test exactly like Private
class Private::Test : public Private
{
public:
// Make Private's copy of i available publicly in Test
using Private::i;
};
// A convenience function to quickly break encapsulation on a class to be tested.
// I don't have good name for what it does
Private::Test& foo( Private& p )
{ return *reinterpret_cast<Private::Test*>(&p); } // power cast
void unit_test()
{
Private p;
// using the function quickly grab access to p's internals.
// obviously it would be evil to use this anywhere except in unit tests.
assert( foo(p).i == 42 );
}
8 ответов
антоним "с".
ладно, шучу. (Вроде.)
лучшие термины, которые я могу придумать, - "разоблачить"и " нарушить".
цель инкапсуляции-скрыть/прикрыть/защитить. Антоним будет раскрывать / разоблачать / предавать гласности.
Как насчет Декапсуляции..
хотя это не компьютерный термин, но в медицинской науке,хирургическое удаление капсулы или охватывающей мембраны.. проверить здесь..
"удаление/разрыв инкапсуляции" - это самое близкое, что я видел, честно говоря.
Если вы думаете о слове в английском смысле, инкапсулировать означает заключать внутри что-то. Но в смысле CS есть эта концепция уровней защиты, и похоже, что вы хотите подразумевать обход уровней доступа, поэтому что-то вроде "извлечения" на самом деле не передает смысл, который вы ищете.
но если вы просто думаете об этом с точки зрения того, что уровни доступа, похоже, вы делаете что-то публичное, так как насчет "публикации"?
Это не такой простой вопрос - у Скотта Мейерса была интересная статья, чтобы продемонстрировать некоторые нюансы вокруг инкапсуляции здесь.
Я начну с кульминации: если вы пишете функцию, которая может быть реализовано как член или как non-friend non-member, вы должны предпочитаю реализовывать его как нечлен функция. Это решение увеличивает инкапсуляция класса. Когда вы думаете инкапсуляция, вы должны думать функции, не являющиеся членами.