Ilusaks on võimalik ka saada igasuguste maskidega, näiteks näo- või juustemaskiga. Staatiliselt tüübitud keeltes on ka tavaliselt seda silmas peetud ning loodud liidesed. Nende kasutamine teeb ilusamaks ja paindlikumaks ka arhitektuuri.
Liideste abiga saame objektide omavahelist siduvust vähendada. Teavad täpselt nii palju kui vaja. Mida väiksemaks nendega läheme, seda rohkem anname teada kavatusest ning ei pea kartma NotSupportedExceptionit.
public interface IConsume<TMessage>
{
void Consume(TMessage message);
}
public interface ICanMakeCustomerPreferred
{
void MakePreferred(Cutomer customer);
}
Need liidesed on küllaltki väiksed, kuid leidub ka veel väiksemaid. Neid nimetatakse tähistajateks.
public interface IAggregateRoot {}
Tihti on vajadus ka liideste järgi, mis on mitme parameetriga (generic) ning nende lugemine osutub raskemaks. Õnneks saab teha C#-s sisemisi klasse (nested types) ja selle abiga maskeerida raskesti loetavat koodi.
public interface IMessageHandler<TMessage, TResponse>
{
TResponse Handle(TMessage message);
}
public class RespondsTo<TMessage>
{
public interface With<TResponse> :
IMessageHandler<TMessage, TResponse>
{}
public interface WithListOf<TResponse> :
IMessageHandler<TMessage, IList<TResponse>>
{}
}
public class AcceptedSalesOrdersMessageHandler :
RespondsTo<AcceptedSalesOrdersMessage>.WithListOf<SalesOrder>
{
public IList<SalesOrder> Handle(AcceptedSalesOrdersMessage message)
{
//...
}
}
Kui olete ise liideste osas kasutanud võtteid, mida jagada soovite, siis kommentaarid on oodatud.
Meeldivat maskide kandmist!
Loe veel sarnastel teemadel:
- Iluvõtted koodile I, 7. aprill
- Iluvõtted koodile III, 27. aprill
- Iluvõtted koodile II, 13. aprill
- Iluvõtted testidele, 17. mai
- Vaesed inimesed, 28. jaanuar
KAIZEN FEED
Telli endale Kaizeni uudisvoog
KOMMENTAARIDE FEED
Telli endale kommentaaride voog
KAIZEN TWITTER
Lühiuudised Kaizeni autoritelt
KAIZEN FACEBOOK
Liitu Kaizeniga
MIS ON KAIZEN?
Kaizen on Saiku tarkvaraarendusealane blogi, kus kirjutame erinevatest lähenemistest meisterlikule tarkvaraarendusele.
KATEGOORIAD
- .NET (18)
- Analüüs/Arhitektuur (11)
- Arendus (66)
- Ettevalmistus (1)
- Juhtimine (2)
- Varia (24)
SILDIPILV
- .NET (41)
- ilus kood (23)
- Arendus (23)
- C# (20)
- Analüüs/Arhitektuur (14)
- Testimine (10)
- raamat (8)
- Ruby (8)
- projektijuhtimine (8)
- printsiibid (6)
- produktiivsus (5)
- ReSharper (5)
- PHP (5)
- NHibernate (4)
- objekt-orienteeritud (4)
- pidev integratsioon (4)
- Viited (4)
- agile (4)
- Java (4)
- Geekdinner (4)
- lean (4)
- raamatukogu (4)
- CI (3)
- Cruise Control.NET (3)
- Robert C. Martin (3)
- scrum (3)
- iteratsioon (3)
- suhtlus (3)
- jQuery (2)
- TechEd 2008 (2)
- Visual Studio (2)
- valideerimine (2)
- intervjuu (2)
- tööpakkumised (1)
- analüüs (1)
- ASP.NET (1)
- ümberstruktureerimine (1)
- üritus (1)
- CodeRush (1)
- dokumentatsioon (1)
- Kent Beck (1)
- LINQ (1)
- Martin Fowler (1)
- Moq (1)
- Rhino Mocks (1)
- stackoverflow (1)
- võltsitud objektid (1)
- Whiteboard Wednesday (1)
- hindamine (1)
- tarkvara kvaliteet (1)
- ajagraafikud (1)
- Saiku (1)
- koolitus (1)
- tagasivaate (1)
- koosolek (1)
- dünaamilised keeled (1)
- staatilised keeled (1)
- FluentNHibernate (1)
- facebook (1)
- aastapäev (1)
- Rake (1)
- Oredev 2008 (1)
- toyota way (1)
- raiskamine (1)
- NDepend (1)
- podcasts (1)
- väle tarkvaraarendus (1)
- raido tonts (1)
- minimal marketable feature (1)
- kasutajalugu (1)
- twitter (1)
- Joomla! (1)
- MVC (1)
- andmebaas (1)
- versioonimine (1)
- diskussioon (1)
- regulaaravaldised (1)
- motiveerimine (1)
- mõõdikud (1)
- agileestonia (1)
- riistvara (1)
- koolitused (1)
- kujundus (1)
- kodulehed (1)
- veeb (1)
