zoukankan      html  css  js  c++  java
  • 设计模式——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();
         }
    }

  • 相关阅读:
    windows查看端口命令
    lombok
    Linux之文档与目录结构 目录的相关操作 Linux的文件系统
    VMware与Centos系统安装 和重置root密码
    shell 基本命令
    centos 安装教程 服务器配置教程 服务器中安装python 服务器中安装Django 安装MySQL 配置MySQL
    {Django基础十之Form和ModelForm组件}一 Form介绍 二 Form常用字段和插件 三 From所有内置字段 四 字段校验 五 Hook钩子方法 六 进阶补充 七 ModelForm
    {Django基础九之中间件} 一 前戏 二 中间件介绍 三 自定义中间件 四 中间件的执行流程 五 中间件版登陆认证
    {Django基础八之cookie和session}一 会话跟踪 二 cookie 三 django中操作cookie 四 session 五 django中操作session
    老师的blog整理 .网络编程部分 .网络编程部分 前端部分 django基础部分
  • 原文地址:https://www.cnblogs.com/macro-renzhansheng/p/12568956.html
Copyright © 2011-2022 走看看