设计模式
2018-06-17 19:27:33来源:未知 阅读 ()
一.创建型模式
模式名称 |
定 义 |
使用频率 |
学习难度 |
简单工厂模式 (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
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Delphi - 互斥对象下实现系统的单例模式 2019-09-04
- delphi黑色背景模式 2018-10-08
- .NET “底层”异步编程模式—&a 2018-06-21
- 享元模式---设计模式(15) 2018-06-21
- "类工厂模式"改写SqlHelper 2018-06-21
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash