软件工程
设计模式
Panda_4
email: weiqiang.guo@qq.com
展开
-
设计模式之建造者模式
设计模式之建造者模式 引入 Sunny 软件公司游戏开发小组决定开发一款网络游戏,该游戏采用RPG(Role Playing Game)模式,玩家可以在游戏中扮演虚拟世界中的一个特定角色,角色根据不同的游戏情节和统计数据(如力量、魔法、技能等)具有不同的能力,角色也会随着不断升级而拥有更强大的能力。 作为 RPG 游戏的一个重要组成部分,需要对游戏角色进行设计,而且随着该游戏的升级将不断增加新的角...原创 2019-12-11 17:16:52 · 253 阅读 · 0 评论 -
设计模式之抽象工厂模式
设计模式之抽象工厂模式 引入 Sunny 软件公司欲开发一套界面皮肤库,可以对 C# 桌面软件进行界面美化。用户在使用时可以通过菜单来选择皮肤,不同的皮肤提供视觉效果不同的按钮、文本框、组合框等界面元素,其结构如下图所示: 要求: 皮肤库具有良好的灵活性和扩展性 用户可以自由选择不同的皮肤 开发人员可在不修改既有代码的基础上增加新的皮肤 初始方案 采用 工厂方法模式进行系统的设计,其结构图如...原创 2019-12-11 10:13:44 · 751 阅读 · 0 评论 -
设计模式之装饰模式
设计模式之装饰模式 引入 Sunny 软件公司基于面向对象技术开发了一套图形界面组件库,该 组件库提供了大量的基本组件,如: 窗体(Window) 文本框(TextBox) 列表框(ListBox) …… 在使用该组件库时,用户经常要求定制一些特效显示效果,如: 带滚动条的窗体(ScrollBarWindow) 带黑色边框的文本框(BlackBorderTextBox) 既带滚动条又带黑色边...原创 2019-11-27 21:54:09 · 1201 阅读 · 0 评论 -
设计模式之组合模式
设计模式之组合模式 引入 Sunny 软件公司欲开发一个杀毒(AntiVirus)软件,该软件既可以对某个文件夹(Folder)杀毒,也可以对某个指定的文件(File)进 行杀毒。 该杀毒软件还可以根据各类文件的特点,为不同类型的文件提供不同的杀毒方式,例如图像文件(ImageFile)和文本文件(TextFile)的杀毒方式就有所差异。现需要提供该杀毒软件的整体框架设计方案。 其文件目录格式...原创 2019-11-21 11:57:24 · 974 阅读 · 0 评论 -
设计模式之桥接模式
设计模式之桥接模式 引入 初始方案 场景一: Sunny 软件公司欲开发一个跨平台图像浏览系统,要求该系统能够显示 BMP、JPG、GIF、PNG 等多种格式的文件,并且能够在 Windows、Linux、Unix 等多个操作系统上运行。 系统首先将各种格式的文件解析为像素矩阵( Matrix ),然后将像素矩阵显示在屏幕上,在不同的操作系统中可以调用不同的绘制函 数来绘制像素矩阵。 系统需具有...原创 2019-11-20 17:31:52 · 376 阅读 · 0 评论 -
设计模式之享元模式
设计模式之享元模式 享元模式(Flyweight Pattern): 通过共享技术实现相同或相似对象的重用,存储这些对象的地方称为享元池(Flyweight Pool) 当系统中出现大量的相同或相似对象时,这无疑会消耗大量的资源,我们想通过一种方式,避免重复的消耗资源,且不影响客户端的使用,由此有了享元模式。 那么享元模式是如何实现对相同或相似对象的重用的呢? 内部状态和外部状态 内部状态:...原创 2019-11-19 21:40:30 · 127 阅读 · 0 评论 -
设计模式之原型模式
设计模式之原型模式 文章目录设计模式之原型模式原型模式原型模式结构图克隆方法的实现浅克隆(Shallow Clone)和深克隆(Deep Clone)原型管理器 Prototype Manager 原型模式 原型模式(Prototype Pattern) 使用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。 即从一个对象出发,创建一个另一个可定制的对象(一般与原对象相似), 而且不需...原创 2019-11-12 12:09:32 · 125 阅读 · 0 评论 -
设计模式之单例模式
设计模式之单例模式 单例模式 单例模式(Singleton Mode) 确保某一个类只有一个实例, 并且能自动实例化向整个系统提供这个实例,这样的类称为单例类。 单例模式的三个要点: 在单例类的内部实现中 只生成一个实例,同时提供一个静态的GetInstance() 方法,使外部可以访问该实例 为了防止外部进行实例化,将构造函数设置为private 在单例类内部定义一个Singleton类...原创 2019-11-11 21:06:32 · 102 阅读 · 0 评论