设计模式
ExtraMile
编程以明志,调试以致远
展开
-
设计模式三种工厂模式
简单工厂模式 例:图形工厂 使用简单工厂模式设计一个可以创建不同几何形状(Shape)的绘图工具类,如可创建圆形(Circle)、矩形(Rectangle)和三角形(Triangle)对象,每个几何图形均具有绘制draw()和擦除erase()两个方法,要求在绘制不支持的几何图形时,抛出一个UnsupportedShapeException异常,设计类图并编程实现。 类图: using Sys原创 2017-08-04 13:50:28 · 3955 阅读 · 0 评论 -
设计模式之单例模式
单例模式:是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例。即一个类只有一个对象实例 例:.在现实生活中,居民身份证号码具有唯一性,同一个人不允许有多个身份证号码,第 一次申请身份证时将给居民分配一个身份证号码,如果之后因为遗失等原因补办时,还是使 用原来的身份证号码,不会产生新的号码。现使用单例模式模拟该场景,设计类图并编程原创 2017-08-04 13:57:12 · 735 阅读 · 0 评论 -
设计模式之双向适配器模式
双向适配器模式:将一个类的接口适配成用户所期待的。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。 例子: 设计和实现一个双向适配器实例,使得猫Cat可以学狗Dog叫Cry() ,狗可以学猫抓老鼠CatchMouse() 。 类图: namespace 设计模式上机2双向适配器{ class Program {原创 2017-08-04 14:01:44 · 7984 阅读 · 2 评论 -
设计模式之原型模式
原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 例子: 某公司要创建一个公文管理器,在公文管理器中提供一个集合对象来存储一些常用的公文模板,用户可以通过复制这些公文模板快速创建新的公文。 namespace 原型模式{class Program {static void Main(string[] args) { Te原创 2017-08-04 14:04:50 · 1025 阅读 · 0 评论 -
设计模式之桥接模式
桥接模式:将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interface)模式。 例子: 例:模拟毛笔: 现需要提供大中小3种型号的画笔,能够绘制5种不同颜色,如果使用蜡笔,我们需要准备3*5=15支蜡笔,也就是说必须准备15个具体的蜡笔类。而如果使用毛笔的话,只需要3种型号的毛笔,外加5个颜料盒,用3+原创 2017-08-04 14:08:22 · 705 阅读 · 0 评论 -
设计模式之组合模式
组合模式:组合模式,将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。掌握组合模式的重点是要理解清楚 “部分/整体” 还有 ”单个对象“ 与 “组合对象” 的含义。组合模式可以让客户端像修改配置文件一样简单的完成本来需要流程控制语句来完成的功能。 例子: 水果盘- 在水果盘(Plate)中有一些水果,如苹果(Apple)、香蕉(Bana原创 2017-08-04 14:10:40 · 864 阅读 · 0 评论 -
设计模式之装饰模式
装饰模式:装饰模式指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。 例子: 变形金刚:变形金刚在变形之前是一辆汽车,它可以在陆地上移动。当它变成机器人之后除了能够在陆地上移动之外,还可以说话;如果需要,它还可以变成飞机,除了在陆地上移动还可以在天空中飞翔。使用透明或者半透明装饰模式设计类图并编程实现。![这里写图片描述原创 2017-08-04 14:13:12 · 679 阅读 · 0 评论 -
空间三维罪接近点对问题
从三维中找出距离最接近的点对,有不足之处还请指正using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace 最接近点问题{ class Program {原创 2016-12-18 18:44:03 · 954 阅读 · 0 评论