2010-11-12 19 views
5

Tôi đang xem xét việc tạo một giao diện và áp dụng nó cho tất cả các đối tượng trong một không gian tên nhất định.Việc sử dụng giao diện trống có phải là thiết kế tồi không?

Tình huống mà tôi sẽ sử dụng: Tôi muốn tạo một trình xử lý chung của các đối tượng đó và tôi muốn thực thi tham số chung để chỉ chấp nhận các loại triển khai giao diện cụ thể này.

Đây có phải là thiết kế không tốt hoặc giao diện trống có được chấp nhận không?

+0

Lặp lại? http://stackoverflow.com/q/3162214/456188 – Crisfole

+0

@Cpfohl: Câu hỏi của tôi dường như rất giống với câu hỏi bạn liên kết đến. Có vẻ như câu hỏi khác này được viết gọn gàng hơn (kiểm tra số 'đã xem') và ít được đề cập trong các câu trả lời. – Remus

+0

Không nói với bạn rằng bạn phải gỡ xuống! :) Tôi chỉ chỉ nó ra trong trường hợp bạn nhận được bất kỳ thông tin bổ sung từ nó. – Crisfole

Trả lời

2

Điều bạn đang nói về thực hiện được gọi là Marker Interfaces.

Tôi đã sử dụng kỹ thuật này thành công trong quá khứ, nhưng tôi sẽ đặt câu hỏi liệu giới hạn nhân tạo bạn đang đặt trên lớp chung của bạn có thực sự cần thiết hay không. Nếu vậy, thì đây chắc chắn là phương pháp kiểm tra nhanh và biên dịch để hoàn thành nó.

+0

Vì vậy, có * là * một tên cho nó ... cảm ơn! – Remus

1

Không có gì sai với ý kiến ​​của tôi. Rất nhiều sức mạnh của họ nằm trong sự kết hợp với (tạo ra) một phần các lớp học.

0

Tại sao bạn tạo giao diện này nếu nó trống? Nội dung của mỗi lớp là gì? Có bất kỳ sự tương đồng nào giữa chúng không? Nếu câu trả lời cho câu hỏi đó là không, thì tại sao bạn lại tạo một giao diện cho mỗi câu hỏi?

Nếu bạn có lý do chính đáng để tạo giao diện trống, có thể là không sao. Nhưng hãy suy nghĩ về nó và xem liệu bạn có thể đặt bất cứ thứ gì vào giao diện chung giữa các phần tử hay không.

+0

... Đồng thời tôi sẽ không thêm thông tin vào một giao diện chỉ vì lợi ích của nó. Giao diện và giao diện ít lỏng lẻo càng tốt. Bạn luôn có thể sử dụng nhiều giao diện cho các nghĩa vụ bổ sung chức năng. – deanvmc

+0

Tôi sẽ không tạo giao diện cho mỗi giao diện, chỉ một giao diện bao gồm tất cả các đối tượng trong một không gian tên nhất định. Và, giả định trong câu hỏi của tôi là không có sự chung giữa chúng. – Remus

1

Sự hiểu biết cá nhân của tôi về giao diện là nó tạo thành hợp đồng công khai giữa một hoặc nhiều đối tượng. Ý tưởng rất đơn giản, bạn có thể xây dựng mã cơ sở của mình bằng cách sử dụng giao diện mà không phải lo lắng về việc triển khai. Có nói rằng đó là một câu hỏi thú vị bởi vì bạn đang cố gắng để thực hiện một hợp đồng. Tôi sẽ nói đi trước.

0

Không có gì ... Sai với việc sử dụng giao diện trống, tôi đoán vậy. Chỉ cần, điểm của giao diện là xác định một tập hợp các chức năng phổ biến có thể thay đổi theo cách thực hiện của nó.

Nó sẽ không làm cho mã hóa dễ dàng hơn, vì bạn đang làm việc hiệu quả với một hộp đen (object, như một số có thể gọi nó).

Thành thật mà nói, nếu tôi đang triển khai kiến ​​trúc mở kết thúc như vậy, tôi chỉ cần đi với cũ object cũ.

1

Không, thiết kế không kém. Việc cung cấp các ràng buộc hợp lý đối với các đối số chung giúp duy trì tính an toàn và khả năng đọc mã. Hơn nữa, bạn có thể khá chắc chắn giao diện sẽ không còn trống mãi mãi.

Các vấn đề liên quan