设计模式
Posted 葉子。
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式相关的知识,希望对你有一定的参考价值。
一.创建型模式
模式名称 |
定 义 |
使用频率 |
学习难度 |
简单工厂模式 (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) { int num1=Convert.ToInt32( txtLfet.Text); string oper = cb.Text; int num2 = Convert.ToInt32(txtRight.Text); //04.调用工厂的静态方法,传入类型 ,获取返回值 Operator part = Factory.cu(oper); part.NumLeft = num1; part.NumRight = num2; int result = 0; //05.调用对应父类变量的Calc()完成计算,接收返回值 try { result = part.Calc(); } catch (Exception ex) { MessageBox.Show(ex.Message); } //06.在Label中显示 label1.Text = result.ToString(); }
三.单例模式
以上是关于设计模式的主要内容,如果未能解决你的问题,请参考以下文章