景德镇做网站,安徽网站建设电话,wordpress实现html5预加载,软件开发培训学校软件开发培训机构局部适配器这个说法是本人从产品项目中总结出的一种叫法。原理是在产品项目的某一项业务处理时#xff0c;嵌入抽象方法和默认实现#xff0c;以便产品作二次开发时#xff0c;不用迁分支或重写就适配修改产品工程的局部逻辑。该方法使用原理很简单#xff0c;但好处明显嵌入抽象方法和默认实现以便产品作二次开发时不用迁分支或重写就适配修改产品工程的局部逻辑。该方法使用原理很简单但好处明显在一些频繁小修小改的固定代码段中使用该方案具备很高的灵活度和可修改性。业务相对固定的话可用来代替模块拉分支操作。 具体使用示例如下
局部适配器定义
public interface ProposalNodeAdaptor {static boolean completeWrapper(QueryWrapperProposal query, ProposalSelectRequest request) {ProposalNodeAdaptor adaptor ZYSpringUtils.getBean(ProposalNodeAdaptor.class);return null ! adaptor adaptor.completeTableWrapper(query, request);}default boolean completeTableWrapper(QueryWrapperProposal query, ProposalSelectRequest request) {return false;}// 其他适配局部适配在产品中的应用 public void setWrapper(QueryWrapperProposal query) {// ......一些条件设置// 如果适配成功走适配逻辑boolean adaptorTableIdSuccess ProposalNodeAdaptor.completeWrapper(query, this);if (!adaptorTableIdSuccess) {SuggestionTableIdAdapter.setWrapperByTableId(query, this);}// ......一些条件设置}局部适配在二次开发中的应用
Component
public class ProjectProposalNodeAdaptor implements ProposalNodeAdaptor {Overridepublic boolean completeTableWrapper(QueryWrapperProposal query, ProposalSelectRequest request) {if (FIRST_VERIFY_TABLE_ID.equals(request.getTableId())) {// 二次开发适配条件return true;} else if (SECOND_VERIFY_TABLE_ID.equals(request.getTableId())) {// 二次开发适配条件return true;} else if (ID_PROP_PROPOSAL_PREPAREVERIFY.equals(request.getTableId())) {// 二次开发适配条件return true;} else if (PROPOSAL_ASSIGN_GROUP_TABLE_ID.equals(request.getTableId())) {// 二次开发适配条件return true;}return false;}// 其他适配
}