Java编程设计2
2016-07-13 13:45
357 查看
一般我们会以这种设计方式生产对象实例,如:
创建一个接口:
实现该接口:
创建一个构造器:
所以在构造实例对象时,需要:
TestOpenBuilder.Build()或TestOpenBuilder.Build("","","");
如果将构造器封装在interface中,如这样所示:
则我们在构造时,可以这样:
创建一个接口:
public interface TestOpen { String getVirtualHost(); String getCapabilities(); boolean getInsist(); }
实现该接口:
public class TestOpenImpl implements TestOpen { private String t1; private String t2; private String t3; public TestOpenImpl() { } public TestOpenImpl(String t1,String t2,String t3) { //doSomething... } @Override public String getVirtualHost() { return null; } @Override public String getCapabilities() { return null; } @Override public boolean getInsist() { return false; } }
创建一个构造器:
public class TestOpenBuilder { public static TestOpen Build() { return new TestOpenImpl(); } public static TestOpen Build(String t1,String t2,String t3) { return new TestOpenImpl(t1,t2,t3); } }
所以在构造实例对象时,需要:
TestOpenBuilder.Build()或TestOpenBuilder.Build("","","");
如果将构造器封装在interface中,如这样所示:
public interface TestOpen { String getVirtualHost(); String getCapabilities(); boolean getInsist(); final class Build { private String t1; private String t2; private String t3; public TestOpen.Build t1(String t1){ this.t1=t1; return this; } public TestOpen.Build t2(String t2){ this.t2=t1; return this; } public TestOpen.Build t3(String t3){ this.t3=t3; return this; } public TestOpen build() { return new TestOpenImpl(this.t1,this.t2,this.t3); } } }
则我们在构造时,可以这样:
TestOpen testOpen = new TestOpen.Build().t1("haha").t2("21").t3("23").build(); 这样做的好处:可以将接口与其构建器关联起来,方便使用。
相关文章推荐
- Spring定时任务
- java布局——流式布局
- Java并发编程:Executor框架
- 线程池等待一定数目的线程执行完毕之后返回结果
- java布局——边界布局
- JAVA wait(), notify(),sleep详解
- Java中自定义异常
- java.util.concurrent
- 多线程设计模式——Master-Salave(主仆)模式
- java中compareTo和compare方法之比较
- 计算checbox选中值
- struts2基础——自定义拦截器
- unsolved problems:JAVA needed
- Java数组操作方法
- java中json的使用
- 服务器部署java项目
- Spring MVC
- Java编程思想第四版第十二章学习——通过异常处理错误(2)
- SpringMVC访问静态资源的三种方式
- mac切换jdk版本