• 设计模式——Build模式


    //接口

    public interface Build {
         public void buildTop(String name);
         public void buildLeft(String name);
         public void buildMain(String name);
         public void buildBootom(String name);
         public PageBuild getPageBuild();
    }

    //工具类

    public class PageBuild {
         //缺少成员属性的思维
         private String top;
         private String left;
         private String main;
         private String bottom;
        
         public void buildTop(String location) {
             this.top = location;
             System.out.println(location);
         }
         public void buildLeft(String location) {
             this.left = location;
             System.out.println(location);
         }
         public void buildMain(String location) {
             this.main = location;
             System.out.println(location);
         }
         public void buildBottom(String location) {
             this.bottom = location;
             System.out.println(location);
         }
    }

    //接口+工具类对象

    public class H5Builder implements Build{
         private PageBuild pageBuilder;
         public H5Builder() {
             pageBuilder = new PageBuild();
         }
         public H5Builder(PageBuild pageBuilder) {
             // TODO Auto-generated constructor stub
             this.pageBuilder = pageBuilder;
         }
         @Override
         public void buildTop(String name) {
             // TODO Auto-generated method stub
             //System.out.println("h5 构建 顶部");
             pageBuilder.buildTop(name);
         }

        @Override
         public void buildLeft(String name) {
             // TODO Auto-generated method stub
             //System.out.println("h5 构建 左部");
             pageBuilder.buildLeft(name);
         }

        @Override
         public void buildMain(String name) {
             // TODO Auto-generated method stub
             //System.out.println("h5 构建 主部分");
             pageBuilder.buildMain(name);
         }

        @Override
         public void buildBootom(String name) {
             // TODO Auto-generated method stub
             //System.out.println("h5 构建 底部");
             pageBuilder.buildBottom(name);
         }
         @Override
         public PageBuild getPageBuild() {
             // TODO Auto-generated method stub
             return pageBuilder;
         }

    }

    //

    //代码重复 sout
    public class VueBuilder implements Build{
         private PageBuild pageBuilder;
         public VueBuilder() {
             // TODO Auto-generated constructor stub
             this.pageBuilder = new PageBuild();
         }
         public VueBuilder(PageBuild pageBuilder) {
             // TODO Auto-generated constructor stub
             this.pageBuilder = pageBuilder;
         }
        
         @Override
         public void buildTop(String name) {
             // TODO Auto-generated method stub
             //System.out.println("Vue buld Top");
             pageBuilder.buildTop(name);
            
         }

        @Override
         public void buildLeft(String name) {
             // TODO Auto-generated method stub
             //System.out.println("Vue buld Left");
             pageBuilder.buildLeft(name);
         }

        @Override
         public void buildMain(String name) {
             // TODO Auto-generated method stub
    //        System.out.println("Vue buld Main");
             pageBuilder.buildMain(name);
         }

        @Override
         public void buildBootom(String name) {
             // TODO Auto-generated method stub
    //        System.out.println("Vue buld Right");
             pageBuilder.buildBottom(name);
         }

        @Override
         public PageBuild getPageBuild() {
             // TODO Auto-generated method stub
             return pageBuilder;
         }

    }

    //

    public class FactoryBuilder {
         private Build build;

        //默认无参构造 html5
         public FactoryBuilder() { this.build = new H5Builder(); }
        
         //当有多个实现类的时候传参
         public FactoryBuilder(Build build) {
             // TODO Auto-generated constructor stub
             this.build = build;
         }
        
         public void build() {
             build.buildTop("nav");
             build.buildLeft("index");
             build.buildMain("body");
             build.buildBootom("footer");
         }
    }

    //测试

    public class Dcemo {
         public static void main(String[] args) {
             //当应用中返回或者生成PageBuilder,调用有参---服务于需求!!
             H5Builder hBuilder = new H5Builder();
             FactoryBuilder fBuilder = new FactoryBuilder(hBuilder);
             fBuilder.build();
         }
    }

  • 相关阅读:
    jsp文件上传、下载
    Hadoop 集群常见错误
    大学手机课表系统前景和范围文档
    psp工具软件前景与范围文档
    PSP系统项目前景与范围文档
    社团管理系统项目前景与范围文档
    PSP结构化分析
    PSP(个人软件开发过程)需求分析
    有关高校科研系统相关信息分析
    QQ应用前景与范围文档
  • 原文地址:https://www.cnblogs.com/macro-renzhansheng/p/12568956.html
Copyright © 2020-2023  润新知