Eklenti çerçeve geliştiricisi olarak, eklentilerin uygulanması gereken bir arabirim, myNameSpace.IPlugin belirtmek istiyorum. IPlugin.GetWidget() arabirim üyelerinden birinin dönüş değeri System.Windows.Forms.Control türünden türetilmiş olmalıdır ve ayrıca myNameSpace.IFoo arabirimini de uygulamalıdır. Ayrıca, eklenti geliştiricilerinin IPlugin.GetWidget() yazılımındaki üçüncü taraf denetimlerine (zaten System.Windows.Forms.Control descendents) dönmesine izin vermek istiyorum. Bu gerekçeyi, belgelemeden başka, açık bir şekilde belirtmek için en iyi yol hangisidir? Bir eklenti geliştiricisi, bu gereksinimleri karşılamak için bir eklenti (3. taraf kontrolü kullanarak) tasarlamaya nasıl gider?GUI Framework Eklentisi Tasarımı
1
A
cevap
1
Tasarımınız biraz balık kokuyor. Widget'lar neden somut bir sınıftan miras almalı ve alakasız başka bir arayüz kullanmalıdır? Sanki biraz mirastan mutlu gibisin. Bunun yerine, bu deneyin:
interface IPlugin
{
IWidget Widget { get; }
}
interface IWidget
{
System.Windows.Forms.Control Control { get; }
IFoo Foo { get; }
}
İster IFoo gerçekten uygulayıcısı kadar olmalıdır kontrolü kendisi veya başka bir sınıf tarafından uygulanır. Kodunuz umrumda değil.
Etiketlerin soru başlığı olduğunu seviyorum ... –