لماذا هناك واجهة / فئة (IFoo, FooClass) نمط في مكتب Interop API ؟

StackOverflow https://stackoverflow.com/questions/1213033

  •  06-07-2019
  •  | 
  •  

سؤال

في Microsoft.مكتب.إمكانية التشغيل المتداخل.Visio مكتبة كل كيان (ل هـ.ز الشكل) ، وصفها بأنها فئة (ShapeClass) واجهة والشكل.

لذلك لكل عنصر لديك:

interface Shape { ... }
class ShapeClass : Shape { ... }

interface Page { ... }
class PageClass : Page { ... }

...

لماذا هو تصميم مثل هذا ؟

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

المحلول

وو"إمكانية التشغيل المتداخل" جزء من مساحة يلمح أن هذا هو في الواقع API المستندة إلى COM.

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

وهكذا، في المثال الخاص بك، ويسمى ShapeClass على "شارك في الفئة"، والذي هو تطبيق اسمه واجهة Shape.

وسجلت الطبقات شركة على مستوى العالم (في التسجيل Win32 و) ويمكن إنشاؤها على أساس أسمائهم ودية ( "بروغ-ID") أو GUID، ودعا "CLSID".

نصائح أخرى

واعتقد انه سيكون لأنها تنفذ جميع ككائنات COM واجهة هناك لتعريف العقد لتنفيذ الطبقة - سيتم تنفيذ الواجهات في المختبر الدولي للألماس

يكي COM

ولأن هذه هي الطريقة التي يعمل COM.

وCOM يحدد الواجهات التي مكونات تنفذ. جميلة ويستند الكثير من كل شيء في COM على الواجهات. واجهات أكثر أهمية من الفئات التي تنفيذها.

هذا يعتمد على طريقة COM يعمل.

إذا كنت تبحث عن أمثلة جيدة .صافي تصميم, هل لا ابحث في مكتب interop المكتبات (PIAs).هم المباشر مغلفة حول COM يعادل وهي معتدلة فظيعة في C#.

إلى جعل المكتب المكتبات أسهل للعمل مع ، في محاولة VSTO أدوات السلطة

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