java设计模式--Builder设计模式

 

在学习Builder设计模式的时候 ,发现 这个Builder 和 工厂设计模式十分相似 ,我甚至说不出来他们之间有着什么样的区别,但可以肯定的是 ,如果我们需要产生一个复杂的对象,这个对象中包含多个其他的对象,以及属性等 。

那么我们应该使用Builder 模式 ,Builder模式减少了 对象部件之间的耦合度 ,所谓的耦合度 也就是对象部件之间的联系 。

其实说的再多也不如自己认真的分析一段代码 并且自己着手实现一个Builder原型 。 

下面一段代码实现的功能 是产生一个 MyProduct 对象 这MyProduct对象中包含了 PartA  PartB  PartC三个对象 ,我们不是像以往的一样,将所有操作在 MyProduct    完成  。

看下面操作吧 可能比我说的更好理解:  下面是结构

class  MyProduct     //我们的产品类   包含三个部件 。 PartA PartB PartC
{
 private PartA a ;
 private PartB b ;
 private PartC c ;
 MyProduct(PartA a,PartB b ,PartC c)
 {
  this.a=a;
  this.b=b;
  this.c=c;
 }
 public void showPart()     
 {
  System.out.println(a.getClass().getName());
  System.out.println(b.getClass().getName());
  System.out.println(c.getClass().getName());
 }
}
class  PartA{}
class  PartB{}
class  PartC{}
interface Builder     //Builder接口
{
 public void buildPartA() ;
 public void buildPartB() ;
 public void buildPartC() ;
 public MyProduct getResult();  //返回产品
}

class  MyBuilderTest  implements Builder
{
 private PartA a  =null;
 private PartB b  =null;
 private PartC c  =null;
 @Override
 public void buildPartA() {
  if(a==null)
   this.a= new PartA() ;
  else
   return ;
 }
 @Override
 public void buildPartB() {
  if(b==null)
   this.b= new PartB() ;
  else
   return ;
 }
 @Override
 public void buildPartC() {
  if(c==null)
   this.c= new PartC() ;
  else
   return ;
 }
 @Override
 public MyProduct getResult() {
  return new  MyProduct(a,b,c);
 }
}
class  Director            //一个代理
{    

  private MyBuilderTest t ;
   Director(MyBuilderTest t)
   {
     this.t=t ;
   }
   public void build()
   {
    t.buildPartA() ;
    t.buildPartB() ;
    t.buildPartC() ;
   }
}
class MyBuilder
{
 public static void main(String []agrs)
 {
   MyBuilderTest test =new  MyBuilderTest();     //  我们的构建器
   Director  d=new Director(test) ;        //Director类
   d.build() ;                                            //通过Director构建
   MyProduct product=(MyProduct)test.getResult() ;    //调用Builer的 getResult返回结果
   product.showPart() ;  // 产品的方法
 }
}

 

 

时间: 2024-08-02 09:51:10

java设计模式--Builder设计模式的相关文章

Java设计模式---Builder模式

之前想多写一些关于设计模式之类的东西,但是一直没写,主要是现在网上写这些的太多了,都懒的弄,反正我写这篇是写给自己做笔记的,我自己看,哼. 设计模式真的太重要了,不论是以后转学哪门语言,面向对象思想在这了,架构搭起来就会清晰些. 动手: 以前我们给model赋值的时候是这个样子的 Person person=new Person(); person.setAge(13); person.setId("33"); person.setName("薛之谦"); 这个是我

从Java类库看设计模式(5)

有了前面诸多设计模式的基础,这儿可以提出一个比较特殊的模式MVC.MVC并不属于GOF 的23个设计模式之列,但是它在GOF的书中作为一个重要的例子被提出来,并给予了很高的评 价.一般的来讲,我们认为GOF的23个模式是一些中级的模式,在它下面还可以抽象出一些更 为一般的低层的模式,在其上也可以通过组合来得到一些高级的模式.MVC就可以看作是一些 模式进行组合之后的结果(实际上,MVC的出现要早于设计模式的提出,这而只是对它在设计 模式的基础上进行在分析).如果没有前面的基础,理解MVC或许会有

请问这是java中的设计模式吗?

问题描述 请问这是java中的设计模式吗? 请问下面的代码属于什么设计?为什么把set方法改成那样子 public class A{ private Integer num; private String min; public Integer gerNum(){ return num; } public A num(Integer num){ this.num = num; return this; } public String getMin(){ return min; } public

Java责任链设计模式_java

责任链(Chain of Responsibility)模式是一种对象的行为模式.在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链.请求在这个链上 传递,直到链上的某一个对象决定处理此请求.发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态 地重新组织和分配责任. 责任链模式属于行为型设计模式之一,怎么理解责任链?责任链是可以理解成数个对象首尾连接而成,每一个节点就是一个对象,每个对象对应不同的处理逻辑,直至有一个对象响应

在Java中应用设计模式--Factory Method

设计 在设计模式中,Factory Method也是比较简单的一个,但应用非常广泛,EJB,RMI,COM,CORBA,Swing中都可以看到此模式的影子,它是最重要的模式之一.在很多地方我们都会看到xxxFactory这样命名的类,那么,什么是Factory Method,为什么要用这个模式,如何用Java语言来实现该模式,这就是本文想要带给大家的内容. 基本概念 Factory Method是一种创建性模式,它定义了一个创建对象的接口,但是却让子类来决定具体实例化哪一个类.当一个类无法预料要

在Java中应用设计模式--Singleton

设计 本文介绍了设计模式中 Singleton 的基本概念,对其功能和用途进行了简单的分析,列出了通常实现 Singleton 的几种方法,并给出了详细的Java 代码. 基本概念 Singleton 是一种创建性模型,它用来确保只产生一个实例,并提供一个访问它的全局访问点.对一些类来说,保证只有一个实例是很重要的,比如有的时候,数据库连接或 Socket 连接要受到一定的限制,必须保持同一时间只能有一个连接的存在.再举个例子,集合中的 set 中不能包含重复的元素,添加到set里的对象必须是唯

深入浅出基于Java的代理设计模式

一.引子 我们去科技市场为自己的机器添加点奢侈的配件,很多DIYer都喜欢去找代理商,因为在代理商那里拿到的东西不仅质量有保证,而且价格和售后服务上都会好很多.客户通过代理商得到了自己想要的东西,而且还享受到了代理商额外的服务:而生产厂商通过代理商将自己的产品推广出去,而且可以将一些销售服务的任务交给代理商来完成(当然代理商要和厂商来共同分担风险,分配利润),这样自己就可以花更多的心思在产品的设计和生产上了. 在美国,任何企业的产品要想拿到市场上去卖就必须经过代理商这一个环节,否则就是非法的.看

从Java类库看设计模式(3)

上一次主要介绍了几个创建型的设计模式AbstractFactroy,FactoryMethod和Singliton .它们的共同的特点,都是用来创建对象的.这次接下来的内容,涉及到的是几个结构型的 模式.所谓结构型模式,就是用来解决在创建系统结构的过程中,通过对类或者对象进行合 理有效的组合,以获得更大的结构的方法.这儿主要讲到了Bridge模式和Decorator模式.对 于Bridge模式可能需要更多的理解,因为它在很大程度上说,例示了设计模式的基本的设计 思路和原则. Bridge模式 当

从Java类库看设计模式(2)

在上一部分的内容中,我们讲到什么是模式,什么是设计模式,以及对一个设计模式 Observer的详细阐叙.相信大家对于模式的概念应该是比较的理解了.这部分及以后的内容 ,将会步入正题,从Java类库的分析入手,来阐叙设计模式是如何应用到一个完美的设计中 的.实际上,Java类库非常的庞杂,这儿不可能把所有能够找到的设计模式的例子一一列举 ,只是找了一些容易发现的例子.实际上也没有必要,因为只要对一个设计模式有足够的理 解,对于它的具体应用而言,倒是一件不是很困难的事情. Command模式 在设计