![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
wang_nian
不以物喜 不以己悲 生于忧患 死于安乐
展开
-
装饰模式
Intent为对象动态添加功能。Class Diagram装饰者(Decorator)和具体组件(ConcreteComponent)都继承自组件(Component),具体组件的方法实现不需要依赖于其它对象,而装饰者组合了一个组件,这样它可以装饰其它装饰者或者具体组件。所谓装饰,就是把这个装饰者套在被装饰者之上,从而动态扩展被装饰者的功能。装饰者的方法有一部分是自己的,这属于它的功能,然后调用被装饰者的方法实现,从而也保留了被装饰者的功能。可以看到,具体组件应当是装饰层次的最低层,因为只有具体原创 2020-09-25 09:53:31 · 112 阅读 · 0 评论 -
设计原则详解
1.单一职责 一个类,只有一个引起它变化的原因。应该只有一个职责。每一个职责都是变化的一个轴线,如果一个类有一个以上的职责,这些职责就耦合在了一起。这会导致脆弱的设计。当一个职责发生变化时,可能会影响其它的职...转载 2020-09-24 11:16:35 · 593 阅读 · 0 评论 -
设计原则总结
S.O.L.I.D简写 全拼 中文翻译 SRP The Single Responsibility Principle 单一责任原则 OCP The Open Closed Principle 开放封闭原则 LSP The Liskov Substitution Principle 里氏替换原则 ISP The Interface Segregation Principle 接口分离原则 DIP The Depende原创 2020-09-24 10:59:14 · 143 阅读 · 0 评论 -
状态模式----设计模式
状态State,指某事物所处的状况或形态,比如水的三态,零下会变成固态冰,常温会是液态水,100℃会蒸发成气态的水蒸气。言归正传,依旧老惯例,我们还是用极简主义阴阳二态来做药引子,想必每个人家里都有开关吧,其暴露出两个UI可操作接口(对接你的手指):开,关。很简单吧?好我们来分析一下,首先得定义一个类吧,就叫它:Switcher好了,对外暴露两个方法:switchOn()以及switchOff(),以便用户调用,OK,开始我们的代码。 1publicclassSwitcher{ ...原创 2020-08-21 10:19:12 · 116 阅读 · 0 评论 -
策略模式----设计模式
策略,Strategy,古时也称“计”,为了达成某个目标的方案,目标不同,方案也随之更改。例如特工执行任务时总要准备好几套方案以应对突如其来的变化,A计划实施过程中情况突变导致预案无法继续实施,则马上更换为B计划,正所谓计划不如变化快,提前策划固然非常重要,而随机应变更是不可或缺,只有保证这种可变的灵活性才能立于不败之地。作为有思想的码农,我们当然也不能把程序写死了,一个设计优秀的系统,绝不是把现有类的代码改来改去,而一定是扩展类并接入系统,这样马上就能适应不同的用户需求。就拿游戏机来举个例子.转载 2020-08-21 09:52:55 · 107 阅读 · 0 评论 -
适配器模式----设计模式
顾名思义,适配器,得适应当前的不同配置,解决兼容性问题。我们生活中充满了各种各样的适配器,上网用的调制解调器(modem)就是一种数模转换的适配器,俗称“猫”,不过现在都是光猫了,也就是光信号和电信号的互相转化,其实道理是一样的,还有各种变压器也属于电压转换的适配器。如果觉得还不够形象可以看一下家里的电器,比如你的电视是两项插头,墙上的插孔是三项插孔怎么办?哦,有人说把插头掰弯强行插入!那如果是三项插头接两项插孔呢?把零线插针拔了!呃,我只能说这是暴力破解!违反设计模式原则。言归正传,我们还..原创 2020-08-20 16:23:58 · 122 阅读 · 0 评论 -
单例模式----设计模式
单例,顾名思义,整个系统其实就只有一个实例存在,不能再多,否则就不叫单例。那我们把整个宇宙看做是一个庞大的系统,这宇宙里有各种对象存在,人啊,动物啊,植物啊不胜枚举,这些都是实例,丰富多彩的世界是美好的。然而,持续几千年的战争给世界带来了巨大灾难,尤其是宗教战争最为残忍,各个信仰间存在极大的世界观价值观冲突。为了让幸福美好洒满人间,那我们就定义一位神吧,独一无二的神。我们先写一个God类吧,类中空空如也,世界如此清净,虚无缥缈。publicclassGod{...原创 2020-08-20 16:01:41 · 109 阅读 · 0 评论 -
原型模式----设计模式
原型模式,实际上是从原型实例复制克隆出新实例,而绝不是从类去实例化,这个过程的区别一定要搞清楚!OK,那开始我们的实战部分。假设我们要做一个打飞机游戏,游戏设定位纵版移动,单打。既然是单打,那我们的主角飞机当然只有一架,于是我们写一个单例模式,此处我们省略主角代码。那么敌机呢?当然有很多架了,好,为了说明问题我们去繁就简,先写一个敌机类。 1publicclassEnemyPlane{ 2privateintx;//敌机横坐标 3pri...原创 2020-08-20 15:40:55 · 113 阅读 · 0 评论