Kami telah, pada proyek besar, berhasil cukup baik untuk mengisolasi kode ArcObjects dari logika bisnis kami. Itu umumnya cara untuk pergi, saya katakan, daripada mencoba untuk mengejek semuanya, bahkan jika mungkin menggunakan kerangka kerja mengejek untuk mendapatkan beberapa cara.
Tanyakan pada diri sendiri, Mengapa Anda merasa perlu mengejek. Biasanya, itu karena abstraksi yang hilang. Pikirkan tanggung jawab kecil dan meminimalkan permukaan monster ArcObject yang besar dan jelek. Hindari menyeret tipe ArcObject hanya karena beberapa aspek dari mereka diperlukan di suatu tempat.
Saya dapat memberikan satu contoh nyata dari proyek kami. Sebagian kode tampaknya tergantung pada IMxDocument. Ternyata satu-satunya alasan adalah bahwa tampilan aktif perlu di-refresh. Jadi kami membuat antarmuka IViewRefresher dan hanya bekerja pada itu; mudah diejek dan diuji. Selain itu, itu membuat maksud kode menjadi lebih jelas dan menghilangkan godaan bagi seseorang untuk mulai melakukan hal-hal lucu dengan IMxDocument yang tidak seharusnya mereka lakukan karena semua yang ingin kita lakukan di sini adalah penyegaran. Latihan yang sama dapat dilakukan dengan banyak kode ArcObjects.
Selain itu, kami membungkus semua akses ke kelas fitur dalam jenis pembungkus yang aman, lagi-lagi menyediakan kode yang dapat dipermainkan yang melindungi kode bisnis dari ArcObjects.
Kami telah membahas bahkan tidak menggunakan jenis geometri dari ArcObjects, tetapi saat ini kami mengizinkan antarmuka tersebut untuk digunakan secara langsung dalam kode kami. (Namun, pengetahuan antarmuka hanya diperbolehkan dan semua instantiasi geometri menggunakan pabrik geometri kami sendiri.)
Singkatnya, saya tidak mengolok-olok mengejek tetapi saya mendorong mengejek pada tingkat abstraksi yang berbeda dari ArcObjects.