Tôi đồng ý với Tốc độ bay mà bạn nên sử dụng quá tải ở đây, nhưng tôi sẽ làm cho chúng khác nhau. Loại bỏ các tùy chọn hoàn toàn.
func someMethod(#arg1: Sometype)-> Void {}
func someMethod(#arg2: Sometype)-> Void {}
func someMethod(#arg1: Sometype, #arg2: Sometype) -> Void {}
Tại thời điểm đó, nó nên được rõ ràng rằng đây là những phương pháp thực sự khác nhau:
func someMethodWithArg1(arg1: Sometype)-> Void {}
func someMethodWithArg2(arg2: Sometype)-> Void {}
func someMethod(#arg1: Sometype, #arg2: Sometype) -> Void {}
Để làm cho bê tông này, hãy xem xét nếu chúng tôi đã thực hiện một lớp FixedLengthString
mà bạn có thể vượt qua một chiều dài tới, hoặc một chuỗi hiện có, hoặc bạn có thể vượt qua cả hai và nó sẽ lặp lại chuỗi cho đến khi nó đầy chiều dài.
Những gì bạn đang mô tả sẽ là:
func makeString(length: Int?, string: String?) -> FixedString
Nhưng thay vì vậy, chỉ cần thực hiện các phương pháp:
func makeStringWithLength(length: Int) -> FixedString
func makeStringFromString(string: String) -> FixedString
func makeStringByFillingWith(string: String, totalLength: Int) -> FixedString
này làm cho nó rõ ràng hơn như thế nào mọi thứ hoạt động, và bạn không thể gọi nó không đúng. Đây là cách bạn nên làm nó trong ObjC, quá.
Nguồn
2015-04-07 15:28:36
Tôi nghĩ điều này có ý nghĩa nhất và làm cho ý định rõ ràng, cảm ơn – bolnad