Tôi đang tìm cách dọn dẹp mã bộ điều khiển Grails của mình. Trong các bộ điều khiển khác nhau tôi ít nhiều có cùng một logic ..Làm cho bộ điều khiển Grails có nhiều DRY hơn không?
- lấy đối tượng
- kiểm tra nếu nó tồn tại
- vv ..
Có cách nào gợi ý vào việc hành động điều khiển sử dụng lại mã phổ biến?
--- giải pháp ---
Tất cả câu trả lời cho câu hỏi đã góp phần vào giải pháp mà chúng tôi đã triển khai.
Chúng tôi đã tạo một lớp được sử dụng trong bộ điều khiển của chúng tôi bằng cách sử dụng phương pháp Mixin. Một trong những phương thức mà mixin thể hiện là phương thức withObject. Phương thức này lấy tên miền từ bộ điều khiển và sử dụng cơ sở này cho phương thức. Hành vi này có thể được ghi đè tất nhiên!
def withObject(object=this.getClass().getName()-"Controller", id="id", Closure c) {
assert object
def obj = grailsApplication.classLoader.loadClass(object).get(params[id])
if(obj) {
c.call obj
} else {
flash.message = "The object was not found"
redirect action: "list"
}
}
Vì vậy, tất cả các câu trả lời đều góp phần vào giải pháp! Cảm ơn rất nhiều!
Vui lòng chỉnh sửa câu hỏi và thêm ví dụ về mã của bạn. Tại thời điểm này câu hỏi là rất mơ hồ. – ordnungswidrig