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() ;  // 产品的方法
 }
}

 

 

转载于:https://www.cnblogs.com/mosatsu/archive/2012/04/14/2466780.html

Java设计模式是一组经过实践验证的面向对象设计原则和模式,可以帮助开发人员解决常见的软件设计问题。下面是常见的23种设计模式: 1. 创建型模式(Creational Patterns): - 工厂方法模式(Factory Method Pattern) - 抽象工厂模式(Abstract Factory Pattern) - 单例模式(Singleton Pattern) - 原型模式(Prototype Pattern) - 建造者模式(Builder Pattern) 2. 结构型模式(Structural Patterns): - 适配器模式(Adapter Pattern) - 桥接模式(Bridge Pattern) - 组合模式(Composite Pattern) - 装饰器模式(Decorator Pattern) - 外观模式(Facade Pattern) - 享元模式(Flyweight Pattern) - 代理模式(Proxy Pattern) 3. 行为型模式(Behavioral Patterns): - 责任链模式(Chain of Responsibility Pattern) - 命令模式(Command Pattern) - 解释器模式(Interpreter Pattern) - 迭代器模式(Iterator Pattern) - 中介者模式(Mediator Pattern) - 备忘录模式(Memento Pattern) - 观察者模式(Observer Pattern) - 状态模式(State Pattern) - 策略模式(Strategy Pattern) - 模板方法模式(Template Method Pattern) - 访问者模式(Visitor Pattern) 4. 并发型模式(Concurrency Patterns): - 保护性暂停模式(Guarded Suspension Pattern) - 生产者-消费者模式(Producer-Consumer Pattern) - 读写锁模式(Read-Write Lock Pattern) - 信号量模式(Semaphore Pattern) - 线程池模式(Thread Pool Pattern) 这些设计模式可以根据问题的特点和需求来选择使用,它们提供了一些可复用的解决方案,有助于开发高质量、可维护且易于扩展的软件系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值