🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #297877

[.NET] Udostępnianie funkcjonalności przez interface'y

#297877
From: Wojciech Spook Sura
Date: Sat, 06 Aug 2011 16:05
37 lines
2661 bytes
Hej!

Piszę assembly, która będzie udostępniała funkcjonalność przez interface'y  
(ładowana w czasie wykonania). Mam klasę A, która generuje listę klas B,  
która z kolei (po potencjalnym przetworzeniu) może być przekazana do klasy  
C, która te dane przetwarza dalej.

A implementuje interface IA, B - IB, dodatkowo dostępny jest interface  
IBList, zaś C implementuje interface IC.

Problem polega na tym, że żeby C funkcjonowała poprawnie, B muszą spełniać  
odpowiednie warunki. Moja implementacja zapewni, żeby warunki te zostały  
spełnione, jednak ktoś może z powodzeniem zaimplementować własne klasy  
implementujące interface'y IB oraz IBList i nakarmić nimi klasę C z  
assembly - wówczas wymagane warunki (o których użytkownik nawet nie musi  
wiedzieć) nie zostaną spełnione i klasa C odmówi współpracy.

W jaki sposób projektować w takim razie tą assembly? Oczywiście C może -  
przed przetworzeniem danych - zrobić ich weryfikację, ale weryfikacja jest  
dosyć kłopotliwa, a poza tym C musi przetworzyć wszystkie dane (których  
może być bardzo dużo), gdy tymczasem automatyczna weryfikacja wbudowana w  
moje klasy zrobi to wszystko w locie i przed dalszym przetwarzaniem danych.

Najbardziej bezpiecznie byłoby nie ufać użytkownikowi assembly i  
weryfikować wszystko - nawet, gdy korzysta z moich klas, które weryfikację  
mają wbudowaną.

Jak mogę rozwiązać powyższy problem?

Pozdrawiam -- Spook.

-- 
! ._______. Warning: Lucida Console sig!    //)    !
! || spk ||    www.spook.freshsite.pl      / _ """*!
! ||_____||        spook at op.pl         / '  | ""!
! |  ___  |   tlen: spoko_ws gg:1290136  /. __/"\ '!
! |_|[]_|_|  May the SOURCE be with you! \/)     \ !
Technical Details
Message-ID: <op.vzsuz3qx8x7o78@notebook.company.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
From: "Wojciech \"Spook\" Sura" <spook"mad@hatter"op.pl>
Newsgroups: pl.comp.lang.c
Subject: [.NET] Udostępnianie funkcjonalności przez
 interface'y
Date: Sat, 06 Aug 2011 18:05:53 +0200
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 69
Message-ID: <op.vzsuz3qx8x7o78@notebook.company.com>
NNTP-Posting-Host: dynamic-78-8-53-190.ssp.dialog.net.pl
Mime-Version: 1.0
X-Trace: inews.gazeta.pl 1312646690 2812 78.8.53.190 (6 Aug 2011 16:04:50 GMT)
X-Complaints-To: usenet@agora.pl
NNTP-Posting-Date: Sat, 6 Aug 2011 16:04:50 +0000 (UTC)
X-User: spoko_ws
X-Antivirus: avast! (VPS 110806-0, 2011-08-06), Outbound message
X-Antivirus-Status: Clean
User-Agent: Opera Mail/11.50 (Win32)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit