手機做網站用什么軟件深圳優(yōu)化公司哪家好
局部適配器這個說法是本人從產品項目中總結出的一種叫法。原理是在產品項目的某一項業(yè)務處理時,嵌入抽象方法和默認實現(xiàn),以便產品作二次開發(fā)時,不用遷分支或重寫就適配修改產品工程的局部邏輯。該方法使用原理很簡單,但好處明顯,在一些頻繁小修小改的固定代碼段中,使用該方案具備很高的靈活度和可修改性。業(yè)務相對固定的話,可用來代替模塊拉分支操作。
具體使用示例如下:
局部適配器定義:
public interface ProposalNodeAdaptor {static boolean completeWrapper(QueryWrapper<Proposal> query, ProposalSelectRequest request) {ProposalNodeAdaptor adaptor = ZYSpringUtils.getBean(ProposalNodeAdaptor.class);return null != adaptor && adaptor.completeTableWrapper(query, request);}default boolean completeTableWrapper(QueryWrapper<Proposal> query, ProposalSelectRequest request) {return false;}// 其他適配
局部適配在產品中的應用:
public void setWrapper(QueryWrapper<Proposal> query) {// ......一些條件設置// 如果適配成功,走適配邏輯boolean adaptorTableIdSuccess = ProposalNodeAdaptor.completeWrapper(query, this);if (!adaptorTableIdSuccess) {SuggestionTableIdAdapter.setWrapperByTableId(query, this);}// ......一些條件設置}
局部適配在二次開發(fā)中的應用:
@Component
public class ProjectProposalNodeAdaptor implements ProposalNodeAdaptor {@Overridepublic boolean completeTableWrapper(QueryWrapper<Proposal> query, ProposalSelectRequest request) {if (FIRST_VERIFY_TABLE_ID.equals(request.getTableId())) {// 二次開發(fā)適配條件return true;} else if (SECOND_VERIFY_TABLE_ID.equals(request.getTableId())) {// 二次開發(fā)適配條件return true;} else if (ID_PROP_PROPOSAL_PREPAREVERIFY.equals(request.getTableId())) {// 二次開發(fā)適配條件return true;} else if (PROPOSAL_ASSIGN_GROUP_TABLE_ID.equals(request.getTableId())) {// 二次開發(fā)適配條件return true;}return false;}// 其他適配
}