创建型模式(5种):工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 环境角色: 基本代码展示: · 去除IFactory、SqlserverFactory和AccessFactory三个工厂类,取而代之的是DataAccess类,用一个简单工厂模式来实现: UML图: (一组网站的结构是类似的,我们看成是可共享的部分(内部状态),而每个网站的用户是不同的,不可共享的,是外部状态): UML图: (棋子的颜色是类似的,只有固定的几种,可以看成是可共享的(内部状态),但是棋子的位置是不确定的,是不可共享的(外部状态)) UML图:
23种设计模式UML图
总体来说基本的23种设计模式分为三大类:
结构型模式(7种):适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式(11种):策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。文章目录
1、简单工厂模式
例(计算器)
例(商场促销)
2、策略模式
策略模式UML结构图
例(商场促销)
class CashContext { private CashSuper cs; public CashContext(CashSuper csuper) { this.cs = csuper; } public double GetResult(double money) { return cs.acceptCash(money); } }
策略模式+简单工厂模式
3、装饰模式
装饰模式UML结构图
abstract class Component { public abstract void Operation(); } class ConcreteComponent : Component { public override void Operation() { Console.WriteLine("具体对象的操作"); } } abstract class Decorator : Component { protected Component component; public void SetComponent(Component component) { this.component = component; } public override void Operation() { if (component != null) { component.Operation(); } } } class ConcreteDecoratorA : Decorator { private string addedState; public override void Operation() { base.Operation(); addedState = "New State"; Console.WriteLine("具体装饰对象A的操作"); } } class ConcreteDecoratorB : Decorator { public override void Operation() { base.Operation(); AddedBehavior(); Console.WriteLine("具体装饰对象B的操作"); } private void AddedBehavior() { } }
例(给人搭配不同的服饰)(装饰模式做法)
例(InputStream)
例(OutputStream)(新增了自定义的装饰器EncryptedOutputStream)
4、代理模式
代理模式UML结构图
例(为别人做嫁衣——请代理送礼物)
5、工厂方法模式
简单工厂 VS 工厂方法(以计算器为例)
简单工厂UML结构图(以计算器为例)
工厂方法UML结构图(以计算器为例)
工厂方法模式UML结构图
6、原型模式
原型模式UML结构图
例(订单处理系统(深复制)——Java)
7、外观(门面)模式
外观模式UML结构图
8、模板方法模式
例(登录界面实现)
例(通过JDBC方式连接数据库)
9、建造者(生成器)模式
建造者模式UML结构图
例(文件备份)(文件头、主体、结尾):
10、观察者模式
观察者模式UML结构图
例(股票行情变动)
11、抽象工厂模式
例(工厂方法模式下的数据库访问UML图)
例(抽象工厂模式下的数据库访问UML图)
抽象工厂模式UML结构图
利用简单工厂改进抽象工厂(以选择数据库为例)
例(反射+配置文件+简单工厂改造后的抽象工厂实现数据库访问)
12、状态模式
状态模式UML结构图
例(工作状态)
13、适配器模式
适配器模式UML结构图
14、备忘录模式
备忘录模式UML结构图
例(游戏进度备忘)
15、组合模式
组合模式UML结构图
16、迭代器模式
迭代器模式UML结构图
17、单例模式
单例模式UML结构图
18、桥接模式
例(不同品牌手机软件的安装)
按品牌分类:
按软件实现分类:
桥接模式实现:
桥接模式UML结构图
全部采用继承,不使用桥接模式的UML图(如果继续扩展消息类型或者发送方式将会十分繁琐):
例:继续添加发送手机消息的处理方式(这个时候代码结构就逐渐开始变得复杂):
桥接模式实现:
19、命令模式
命令模式UML结构图
例(烤羊肉串)
例(计算器——允许执行undo与redo)
20、职责链模式
职责链模式UML结构图
21、中介者模式
结构样例类比
中介者模式UML结构图
22、享元模式
享元模式UML结构图
例(申请网站)
例(五色棋)
23、访问者模式
访问者模式UML结构图
海报
扫一扫,海报
到微信朋友圈
x
扫一扫,手机阅读
打赏
卑微小光不愿放弃!
“你的鼓励将是我创作的最大动力”
确定
wdehxiang的博客
09-10 689
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页 图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算
鄂ICP备13012277号
聚圣源电脑内存怎么看年会歌曲串烧伴奏关于农产品公司起名大全opencanvas电视剧英雄虎胆长城证券官网杉杉来了电视剧剧情人力资源公司起名字大全免费好听的花卉公司起名武荆高速地图刘起名字男孩打分100分的劳务公司起名大全给男孩起名的古诗句杨洋迪丽热巴公布恋情三毛作品600809孟加拉国的首都ad卡牌明辈起名男孩名字丧尸他后妈永不瞑目电视剧姓李男孩起名字洋气一点的店铺英文起名游戏主播起名武神主宰小说给出生孩子起名字汤慕容极品特工王妃武汉富士康地址红楼贾府淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费