Büyük bir projede, ArcObjects kodunu iş mantığımızdan izole etmeyi oldukça iyi başardık. Genelde bu, yolun bir kısmını elde etmek için alaycı çerçeveler kullanmak mümkün olsa bile, her şeyi alay etmeye çalışmaktan ziyade gitmenin yoludur.
Kendinize sorun, Neden alay etme gereğini hissediyorsunuz. Tipik olarak, eksik bir soyutlamadan kaynaklanır. Küçük sorumlulukları düşünün ve dev, çirkin ArcObject canavarının yüzeyini en aza indirin. ArcObject türlerinin etrafında sürüklemekten kaçının, çünkü bunların bazı yönleri bir yere ihtiyaç duyar.
Projemizden somut bir örnek verebilirim. Kodun bir kısmı IMxDocument'e bağlı görünüyordu. Bunun tek sebebi aktif görüntünün yenilenmesi gerektiğiydi. Bunun yerine bir IViewRefresher arayüzü oluşturduk ve sadece bunun üzerinde çalıştık; alay etmek ve test etmek kolay. Buna ek olarak, kodun amacını çok daha net hale getirir ve birisinin yapması gerekmeyen IMxDocument ile komik şeyler yapmaya başlaması cazibesini ortadan kaldırır, çünkü burada yapmak istediğimiz tek şey yenilendi. Aynı alıştırma bir çok ArcObjects koduyla da yapılabilir.
Ayrıca, güvenli sınıftaki tüm özellik sınıflarına tüm erişimi, yine ArcObjects'ten iş kodunu koruyan takılabilir kod sağlayarak tamamladık.
ArcObjects'in geometri türlerini bile kullanmadık, ancak şu anda bu arayüzlerin doğrudan kodumuzda kullanılmasına izin veriyoruz. (Ancak, arayüz bilgisine yalnızca izin verilir ve tüm geometri örneklerinde kendi geometri fabrikamız kullanılır.)
Özetle, alaycılığı engellemiyorum ama alaycı ArcObjects'ten farklı bir soyutlama düzeyinde teşvik ediyorum.