سؤال

ما هي أنواع مختلفة من التغليف؟

أنا على حق في التفكير في أن هذا يشير أساسا إلى مفاهيم OO المركزية مثل التجريد أو تعدد الأشكال والميراث؟

فهمي للتغليف هو أنها طريقة لإخفاء البيانات / الوظائف، لكنني لم أكن أبدا تعدد الأشكال أو الميراث شكلا من أشكال التغليف، على الرغم من أنني أستطيع أن أرى كيف يمكن اعتبار تعدد الأشكال التغليف حيث يمكن أن يخفي النوع الدقيق للكائن تتفاعل مع.

إذن، هل ستقول أن هذا عن ذلك، أم أفتقد بعض المفاهيم الأساسية؟

تعديل لقد لاحظت للتو في التعليقات التي ذكرها شخص ما أنه يمكن أن يشير إلى الأساليب الخاصة / العامة، ربما أفكر في السؤال كثيرا وتوقع إجابة أكثر تعقيدا مما هو عليه حقا؟

هل كانت مفيدة؟

المحلول

أنت تفكر كثيرا في التفكير.

http://en.wikipedia.org/wiki/information_hiding.

مقتطف من هذه المقالة:

المعلومات المختبئة في علوم الكمبيوتر هي مبدأ إخفاء قرارات التصميم في برنامج كمبيوتر من المرجح أن تتغير، وبالتالي حماية الأجزاء الأخرى من البرنامج من التغيير إذا تم تغيير قرار التصميم. تنطوي الحماية على توفير واجهة مستقرة تقوم بإجراء ما تبقى من البرنامج من التنفيذ (التفاصيل التي من المرجح أن تتغير).

يستخدم أحد الأشكال الشائعة من التغليف الخصائص لإخفاء حقول البيانات الخاصة. نموذج أكثر شيوعا هو استخدام OO لتغليف تعقيد البرامج في فئات مانورة جيدا مع أدوار ومسؤوليات. هذا هو المستند الرئيسي في OO، حيث يتحرك من نمط تصميم إجرائي متجانس إلى نمط أكثر تنظيما تسعى إلى إخفاء كل المعلومات غير ذات الصلة إلا والتي تتعلق بمهمة معينة عملك.

نصائح أخرى

إنه رأيي وفهم أن الغلاف المصطلح (لتغليف) هو فن / علوم التقاط جوهر شيء لغرض العرض. في الواقع، بحكم التعريف - التغليف هو حزمة شيء أو أرفقها في حاوية أخرى. لذلك فإن مصطلح التغليف يعني أن تأخذ جوهر ما تحاول تحقيقه وتعبئته في شكل مفيد حتى يمكن إعادة استخدامه حسب الضرورة.

لذا تفسير هذا، فإنه سيعني حزمة المواد في شكل من شأنه أن يجعله أكثر فائدة في وقت لاحق.

حقا حقا ... تفسير هذا كما ترى مناسبا. أراها كمجموعة من الخوارزميات والأدوات المساعدة وإنشاء بنية فئة يمكن استخدامها كبرنامج أبكي في مشاريع أخرى. يمكن تورث / رمز مغلف هذا و / أو تمديده لجعله مفيدا لأغراض معدلة دون تغيير جوهر API الأساسي.

لذلك، فإن التجريد، تعدد الأشكال والميراث ليس أشكالا من التغليف، ولكن أشكال تمديد وتعديل التعليمات البرمجية المضغوطة.

ستتعني أشكال مختلفة من التغليف المعدلات المتعلقة بالخصائص والأساليب والحقول والفئات - وهذا هو العام والخاصة والثابتة والظاهرية (في C #). كل شيء آخر (أي الحمل الزائد، يتجاوز، الظلال) هو تعديل أو امتداد لهذه التغليف.

قد تفكر في التعليمة البرمجية المعدلة تغليف يمكن بعد ذلك الموروثة / الممتدة / الممتدة، ولكن صفقة التي يتم تمديدها هي المنتج المغلف.

يتم تعريف التغليف من قبل المنظمة الدولية للتوحيد القياسي الدولي: "تكنولوجيا المعلومات - المعالجة المفتوحة الموزعة"، ISO / IEC 10746، 1998.

يتم تعريفه من حيث التعاريف البدائية أكثر:

الكيان: أي شيء ملموس أو مجردة من الاهتمام.

الكائن: نموذج للكيان. يتميز كائن بسلوكه وعملي، من قبل دولته.

السلوك (كائن): مجموعة من الإجراءات ذات مجموعة من القيود على متى قد تحدث.

واجهة: تجريد سلوك كائن يتكون من مجموعة فرعية من تفاعلات هذا الكائن مع مجموعة من القيود التي قد تحدث فيها.

التغليف: خاصية أن المعلومات الواردة في كائن يمكن الوصول إليها فقط من خلال التفاعلات عند الواجهات التي يدعمها الكائن.

ISO لا يحدد أنواع مختلفة من التغليف.

وقد ذكرت المشاركات الأخرى المعلومات تختبئ. لا يحدد ISO التغليف صراحة من حيث المعلومات التي تختبئها، على الرغم من أنها تبدو ضمنية، راجع "أساسيات تغليف الأساسيات"، في http://www.edmundkirown.com/pub/

إد.

التغليف هو أكثر من مجرد مختبئ المعلومات. هذا هو جانب واحد من ذلك. يتعلق الأمر بالواجهة إلى وحدة نمطية. توفر واجهة واجهتان مهمتان مهمتان: التغليف والتجريد.

التجريد هو عندما لا يحتاج عميل الوحدة إلى معرفة أكثر مما هو عليه في الواجهة.

و

التغليف هو عندما يكون عميل وحدة نمطية غير قادر على معرفة أكثر مما هو عليه في الواجهة.

(كلا التعاريف من باستخدام UML. بواسطة بيردا ستيفنز)

نظرا لأن التغليف يشير ببساطة إلى "إخفاء المعلومات"، فسوف أتصور أن الكثير من الأشياء يمكن تصنيفها على أنها تغليف. ومع ذلك، فأنا أميل إلى التفكير في التغليف ك "إخفاء التنفيذ"، بمعنى آخر، وهي أداة أستخدمها لإنشاء اقتران فضفاض بين أي شيء أكتبه وأي شيء عميل لما كتبته.

لذلك، أميل إلى الاعتقاد، بشكل عملي، أن التغليف هو أي نموذج أو أفضل ممارسة تتيح لي تقديم واجهة نظيفة صلبة إلى أي عميل.

بشكل عام، يكون استخدام الكلمة قريبا جدا من ما يقوله. تقوم بتغليف شيء ما عند احتوائك، ولا تدع أي من الصفقات فضفاضة. أفضل طريقة للتفكير في الأمر هو أنك تأخذ شيئا ما ووضعه في صندوق أسود حيث لا يمكن لأحد أن يرى التفاصيل بعد الآن. يخفي الصندوق كل شيء، مما يوفر بعض الواجهة الأخرى المنكورة في مكانها.

إن إخفاء المعلومات هي مجرد جانب واحد من جوانب التغليف، نظرا لقضاء البيانات، يمكنك أيضا إخفاء أي من تفاصيل التعليمات البرمجية نفسها. الغرض من التغليف جزء من نظامك هو رسم هذا القليل من التعقيد بعيدا عن الكل، مما يسهل فهم التفاصيل المنفصلة (على كلا الجانبين). أكثر؟

بول.

"تعريفات المرشح للتغليف:

  • تجمع جسديا معا العمليات ذات الصلة أو الأشياء.
  • بوابات الدولة أو البيانات.
  • إخفاء التنفيذ. "

مصدر من: تعريف التغليف

هناك جزأين / طرق لتحقيق التغليف:

  • أولا، التغليف هي تقنية تحزم البيانات والسلوكيات ذات الصلة في وحدة واحدة، أي التجمع الفيزيائي للعمليات (السلوكيات)

على سبيل المثال: -

class Person {
    String name;
    int age;

    void talk() {
    }

    void think() {
    }

    void work() {
    }

    void play() {
    }
}
  • ثانيا، التغليف هي تقنية لحماية البيانات من سوء الاستخدام من قبل العالم الخارجي، والتي تتم الإشارة إليها على أنها "إخفاء المعلومات" أو "مختبئ بيانات".

على سبيل المثال: -

class Person {
    private String name;
    private int age;

    public String getName() {
        return name;
    }

    public String getAge() {
        return age;
    }
}

مصدر من: ما هو التغليف في جافا - ما، لماذا وكيف, المفسد المؤلف يستشهد واجهة كمثال، وهذا غير صحيح. الواجهة لتجريد

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top