Thường thì tôi thấy cần phải thiết kế các đối tượng với chức năng có thể cấu hình.Cấu hình java/tham số truyền thiết kế
Để minh họa, giả sử tôi đang tạo một DateIterator
. (Các) tùy chọn có thể định cấu hình có thể lặp lại khoảng thời gian đã đóng không [start, end]
hoặc khoảng thời gian mở [start, end)
.
- (1) Các, theo ý kiến của tôi, giải pháp không có vẻ yêu kiều - chỉ vẻn vẹn có một tùy chọn cấu hình đúng/sai
new DateIterator(boolean openInterval);
- (2) Các typesafe enum cách - thường là một bit cồng kềnh
new DateIterator(Interval.OPEN_END);
- (3) Unconv entional nỗ lực - đẹp nhưng không quá thẳng về phía trước
new DateIterator().openEnd();
- (4) Phương pháp kế thừa - thường quá kỹ thuật
new OpenEndedDateIterator();
Để này đi kèm một vài lựa chọn thay thế mà tôi xem xét kém , như cấu hình dựa trên số nguyên new DateIterator(Interval.OPEN_END);
hoặc cấu hình dựa trên thuộc tính.
Có cách tiếp cận nào khác không? Bạn thích phương pháp nào?