Chúng tôi, trong một dự án lớn, đã quản lý khá tốt để tách mã ArcObjects khỏi logic kinh doanh của chúng tôi. Nói chung, đó là cách để đi, thay vì cố gắng chế giễu tất cả, ngay cả khi có thể sử dụng các khung mô phỏng để có được một số cách.
Tự hỏi bản thân, tại sao bạn cảm thấy cần phải chế giễu. Thông thường, đó là do một sự trừu tượng bị thiếu. Nghĩ về những trách nhiệm nhỏ và giảm thiểu bề mặt của con quái vật ArcObject khổng lồ, xấu xí. Tránh kéo theo các loại ArcObject chỉ vì một số khía cạnh của chúng là cần thiết ở đâu đó.
Tôi có thể đưa ra một ví dụ cụ thể từ dự án của chúng tôi. Một phần của mã dường như phụ thuộc vào IMxDocument. Hóa ra lý do duy nhất là chế độ xem hoạt động cần được làm mới. Vì vậy, chúng tôi đã tạo ra một giao diện IViewRefresher thay thế và chỉ hoạt động trên đó; dễ dàng để chế nhạo và kiểm tra. Ngoài ra, nó làm cho ý định của mã rõ ràng hơn nhiều và loại bỏ sự cám dỗ để ai đó bắt đầu làm những điều buồn cười với IMxDocument mà họ không nên làm vì tất cả những gì chúng tôi muốn làm ở đây là làm mới. Bài tập tương tự có thể được thực hiện với rất nhiều mã ArcObjects.
Ngoài ra, chúng tôi đã bao bọc tất cả quyền truy cập vào các lớp tính năng trong các trình bao bọc an toàn, một lần nữa cung cấp mã có thể giả được để che chắn mã doanh nghiệp khỏi ArcObjects.
Chúng tôi đã thảo luận thậm chí không sử dụng các loại hình học của ArcObjects, nhưng hiện tại chúng tôi cho phép các giao diện đó được sử dụng trực tiếp trong mã của chúng tôi. (Tuy nhiên, kiến thức giao diện chỉ được cho phép và tất cả các cảnh báo về hình học đều sử dụng nhà máy hình học của riêng chúng tôi.)
Tóm lại, tôi không nản lòng chế giễu nhưng tôi khuyến khích chế giễu ở một mức độ trừu tượng khác với ArcObjects.