Thông thường bạn sẽ thấy một số mã như thế này khoản bảo vệ/lỗi:Anti-mẫu: Thừa khác chi nhánh chứa xử lý
public void bla()
{
if (conditionTrue)
{
// long code here
} else {
// otherwise do nothing
return;
}
// some more code
}
Các chi nhánh khác rõ ràng là một số điều khoản bảo vệ mà trượt xuống, thụt đầu dòng cho dài mã -section có thể được làm phẳng:
public void bla()
{
if (!conditionTrue)
return;
// long code here
// some more code
}
Một số chuyên gia đầu điều này bằng cách lồng những thứ thừa nếu các nhánh lên 3, 4 hoặc 5, tạo mã khó đọc.
tôi biết những nơi này bằng cách nào đó chạm vào chủ đề này:
- http://martinfowler.com/refactoring/catalog/replaceNestedConditionalWithGuardClauses.html
- http://c2.com/cgi/wiki?GuardClause
- http://c2.com/cgi/wiki?HandleErrorsInContext
- https://developer.mozilla.org/En/Mozilla_Coding_Style_Guide#Error_handling
- Shall I use guard clause, and try to avoid else clause?
Đây có phải là tên chống mẫu và tên của nó nếu như vậy?
đẹp ... không biết về điều đó, mặc dù tôi tránh nó là địa ngục. –
Oh người đàn ông, tôi rất quen thuộc với loại mã: '( – GETah
Cảm ơn cho điều này. Nhưng thực sự tôi đang tìm kiếm một tên cho mô tả khác-return-tình hình. Mã mũi tên thay vào chơi khi nói đến (đã đề cập) nhiều cấp độ thụt lề. – mdo