package com.walker.db; import com.walker.infrastructure.utils.StringUtils; /** * 数据库字段排序对象 * @author shikeying * */ public abstract class Sorts { public static final String NAME_ASC = "asc"; public static final String NAME_DESC = "desc"; public static Sort ASC(){ return new AscSort(); } public static Sort DESC(){ return new DescSort(); } public interface Sort { /** * 获得排序顺序关键词,如:asc/desc * @return */ String getValue(); /** * 返回排序的字段名称 * @return */ String getField(); Sort setField(String name); boolean isAsc(); } private static class AscSort implements Sort{ private String fieldName; @Override public String getValue() { // TODO Auto-generated method stub return NAME_ASC; } @Override public String getField() { // TODO Auto-generated method stub return this.fieldName; } @Override public Sort setField(String name) { // TODO Auto-generated method stub assert (StringUtils.isNotEmpty(name)); this.fieldName = name; return this; } @Override public boolean isAsc() { // TODO Auto-generated method stub return true; } } private static class DescSort implements Sort{ private String fieldName; @Override public String getValue() { // TODO Auto-generated method stub return NAME_DESC; } @Override public String getField() { // TODO Auto-generated method stub return this.fieldName; } @Override public Sort setField(String name) { // TODO Auto-generated method stub assert (StringUtils.isNotEmpty(name)); this.fieldName = name; return this; } @Override public boolean isAsc() { // TODO Auto-generated method stub return false; } } public static void main(String[] args){ Sorts.ASC().setField("sxh"); } }