设计模式

2018-06-27 09:52:43来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

一.创建型模式

模式名称

定  义

使用频率

学习难度

简单工厂模式

(Simple Factory Pattern)

 

定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。

 

★★☆☆☆

 

★★★☆☆

工厂方法模式

(Factory Method Pattern)

 

定义一个用于创建对象的接口,但是让子类决定将哪一个类实例化。工厂方法模式让一个类的实例化延迟到其子类。

 

★★☆☆☆

 

★★★★★

抽象工厂模式

(Abstract Factory Pattern)

 

提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。

 

★★★★☆

 

★★★★★

建造者模式

(Builder Pattern)

 

将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

 

★★★★☆

 

★★☆☆☆

原型模式

(Prototype Pattern)

 

使用原型实例指定待创建对象的类型,并且通过复制这个原型来创建新的对象。

 

★★★☆☆

 

★★★☆☆

单例模式

(Singleton Pattern)

 

确保一个类只有一个实例,并提供一个全局访问点来访问这个唯一实例。

 

★☆☆☆☆

 

★★★★☆

 二.简单工厂模式的结构与实现

(一)简单工厂模式的结构

顾客想买奶昔披萨或者培根披萨都会通过工厂来买。如果先实现这个功能的话。

1)第一步先创建窗体

2)第二步创建一个产品的父类

  //产品的父类
 //使用来了抽象方法关键字是    abstract
  public abstract  class Pizza
    {
      public abstract string say();
      
     
    }

3)第三步创建奶昔披萨的子类

   注意:一定要继承父类

public   class chees:Pizza
    {
     

      public override string say()
      {
          return "我是奶昔披萨";
      }
    }

 4)第四步创建培根子类

public  class pg:Pizza
    {
    

       public override string say()
       {
           return "我是培根披萨";
       }
    }

 5)第五步创建工厂类

 //抽象类  工厂
   public abstract class Fack
    {
       //静态  父类
       public static Pizza st(string Type) 
       {
           Pizza pizza = null;
           switch (Type)
           {
               case"奶昔披萨":
                   pizza = new chees();
                   break;
               case "培根披萨":
                   pizza = new pg();
                   break;
               default:
                   break;
           }
           return pizza;
       } 
    }

6)点击主窗体订购按钮写如下代码

 private void btOk_Click(object sender, EventArgs e)
        {
            if (rachees.Checked)
            {
                Pizza pizza = Fack.st(rachees.Text);
              string w=  pizza.say();
              MessageBox.Show(w);
            }
            else
            {
              Pizza pizza=  Fack.st(rapg.Text);
              string w = pizza.say();
              MessageBox.Show(w);
            }
        }

  

三.单模式 

 

 

 

 

  

 

  

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:【.net】创建属于自己的log组件——改进版

下一篇:标志枚举以及位运算