我会尽力解释。
我使用 Play Framework 2,我会做很多 CRUD 操作。其中一些将是相同的,所以我想 KISS 和 DRY 所以起初我在考虑一个包含list
、details
、和方法的抽象类create
,以及通用对象,并通过指定要使用的对象来扩展这个类(模型& 形式) :update
delete
public abstract class CrudController extends Controller {
protected static Model.Finder<Long, Model> finder = null;
protected static Form<Model> form = null;
public static Result list() {
// some code here
}
public static Result details(Long id) {
// some code here
}
public static Result create() {
// some code here
}
public static Result update(Long id) {
// some code here
}
public static Result delete(Long id) {
// some code here
}
}
还有一个将使用 CRUD 的类:
public class Cities extends CrudController {
protected static Model.Finder<Long, City> finder = City.find;
protected static Form<City> form = form(City.class);
// I can override a method in order to change it's behavior :
public static Result list() {
// some different code here, like adding some where condition
}
}
如果我不在静态上下文中,这将起作用。
但既然是这样,我该怎么办?