Tôi đang làm việc trên một dự án phần mềm nơi chúng tôi phải xây dựng ba API. Một cho kênh ngân hàng gia đình , một cho kênh đại lý và một cho kênh di động .
API cơ quan là một API đầy đủ nhất vì nó có tất cả các chức năng .. sau đó là API Home nhỏ hơn một chút và API di động.
Các kiến trúc sư ở đây đã tạo một lớp chung (các dịch vụ EJB kênh chéo được chia sẻ bởi tất cả các API). Nhưng sau đó các API thì khác.
Hiện tại không có sự khác biệt lớn giữa các API. Đội ngũ lớn bắt đầu với kênh đại lý và chúng tôi hiện đang điều chỉnh nó cho kênh chủ. Chúng tôi chỉ làm phong phú các đối tượng cụ thể cho ứng dụng nhà của chúng tôi. Mặt khác, mã giống nhau 95% giữa các API. Các API được xây dựng dựa trên Spring MVC và nó có (bộ điều khiển, mô hình và một số tiện ích).
Về cơ bản, các bộ điều khiển đang thực hiện ánh xạ BO sang ChannelObject (có vẻ như tôi không phải là nơi thích hợp để làm điều đó) và một số tiện ích bổ sung và tuần tự hóa. Tất cả là bản sao cho bây giờ. Họ đang nói rằng lý do trùng lặp là họ muốn các API độc lập. "Nếu ngày mai chúng tôi muốn có một hành vi khác cho gia đình hơn là đại lý hoặc điện thoại di động, chúng tôi sẽ không đấu tranh !!"
Có trường hợp nào chúng ta nên chấp nhận mã trùng lặp?