设计模式-创建型模式

创建型模式:
这里写图片描述

工厂方法
这里写图片描述

核心:客户端调用具体的工厂,让工厂去决定实例化哪个具体的类。
核心代码为工厂类创建对应的具体的类,表现为和对应的具体类的依赖关系。

//抽象工厂类
  Interface Productfactory
  {
    Product CreateProduct();
  }
//具体A工厂
 class ConcreteProductFactoryAProductfactory
  {
    public Product CreateProduct()
    {
       return new ConcreteProductA();
    }
  }
//具体产品B工厂
class ConcreteProductFactoryBProductfactory
  {
    public Product CreateProduct()
    {
       return new ConcreteProductB();
    }
  }

抽象工厂
这里写图片描述

核心:一个工厂类可以创建一个品牌的一系列产品
核心代码:

//抽象工厂类
  Interface Productfactory
  {
    Product CreateProduct();

  }
//具体1号品牌工厂
 class ConcreteFactory1:Productfactory
  {
      //生产1号品牌的A产品
    public Product CreateProductA()
    {
       return new ConcreteProductA1();
    }
     //生产1号品牌的B产品
     public Product CreateProductB()
    {
       return new ConcreteProductB1();
    } 
  }

//具体2号品牌工厂
class ConcreteFacotry2:Productfactory
  {
  //生产2号品牌的A产品
    public Product CreateProductA()
    {
       return new ConcreteProductA2();
    }
     //生产2号品牌的B产品
     public Product CreateProductB()
    {
       return new ConcreteProductB2();
    }
 }

建造者
这里写图片描述

核心:builder类封装具体的表现形式,Director类封装具体的建造过程。
通过聚合指挥者拥有建造者对象,指挥者让建造者去做具体的事情。
核心代码:

//建造过程
class Director 
{
  public void Construct(Builder builder)
  {
     builer.BuildePartA();
      builer.BuildePartB();
     builer.GetResult();
  } 
}
abstract class AbstractBuilder      
{          
  public abstract  void BuildPartA(); 
  public abstract  void BuildPartB(); 
  public abstract  void GetResult();        
}      

 //具体的表现
 class ConcreteBuilder : AbstractBuilder     
  { 
    public override void BuildPartA()        
      { 
      product.add("部件A")             
      }  
    public override void BuildPartB()
      {
        product.add("部件B");
      }
    public override void BuildPartB()
      {
         return product;
      }
 }

原型
这里写图片描述

核心:通过拷贝让原型创建新的实例

 abstact class prototype
 {
 public abstract Protype Clone(); 
 }

 class ConcretePrototype1:Prototype
 {
    public override Protetype Clone()
    {
      return (Protetype)this.MemberwiseClone();
    }
 }

总结:
创建型模式都是在创建对象的过程,像工厂是通过在工厂类里面返回一个具体的要创建的对象(依赖关系),在建造者里面是把builder类作为参数传给Director类,然后在director类的方法里面,调用builder对象,去执行builder 的方法。(聚合关系)。学习,对比联系抽象,这样效率才更高,不断实践。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 16
    评论
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

诗琪小姐姐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值