大话设计模式-笔记
1.简单工厂
一个生成各种水果罐头的工厂,根据订单生产对应的罐头给客户。
水果罐头 = 工厂.生产水果罐头("梨罐头");
水果罐头.打开();
Log("好好吃呀");
2.策略模式
它呢跟上面的老兄简单工厂
里的工厂
很相似,可以把它看作一个保姆,保姆去工厂拿主人想吃的水果罐头。主人完全不需要自己做就可以吃到美味的梨罐头啦。
取罐头的保姆 = new 取罐头的保姆("梨罐头");
Log("保姆把梨罐头取回来啦");
取罐头的保姆.打开罐头();
Log("主人吃的了美味的梨罐头");
保姆封装了一系列琐碎的事情,使得主人可以很安逸的享受服务,比起简单工厂模式如果如果没有保姆代劳这个喜欢吃罐头的主人就要自己去找罐头还要自己开罐头。
3.单一职责原则
在做一个程序时有UI
和逻辑
,要尽量把它们两分离开,在逻辑中避免混杂UI部分可以让容易变化的部分(UI)的改动不会影响到不容易变化的部分(逻辑)。总而言之就是每个人负责的事情要单一,分工合作。
4.开放(扩展)-封闭(修改)原则
尽量让之前写的代码不做修改,而是新增一些类做扩展。需要修改时创建抽象
把频繁
发生的变化来隔离开。
5.依赖倒转原则
“针对接口
编程,不要对实现
编程。”
里氏代换原则
子类拥有父类所有的非private的方法和属性。
如下图所示,因为鸵鸟
并不具备飞行
的功能,如果继承了鸟类
鸵鸟就会飞行了,这是不对的。因此鸵鸟
不能继承鸟类
。
6.装饰模式
安妮在给它的小熊打扮,她先
给小熊穿上了绣着鲜花的七分裤子,然后
给小熊穿上了洁白的衬衫,又
给它戴了顶大大的太阳帽。打扮好后安妮把小熊塞进了新买的书包上学去啦。
装饰模式
把小熊和装饰分离,安妮按顺序给小熊穿搭,不同的顺序会打扮出不一样的小熊熊哦~(内裤与外裤←_←)。
7.代理模式
代理代理取而代之。当下疫情未过很多人通过点外卖的方式吃饭,通过外卖小哥配送(代理、代劳)就可以在家取到可口的街边美食了。喝酒应酬不能开车需要找代驾…总之就是找个替身你会的那个替身就必须会,代替你做事情隐藏自己的身份(其实我的真实身份是🤫)
8.工厂方法模式
因为在简单工厂模式
中添加新的功能时需要在代码中做修改(添加case分支)违背了开放-封闭原则
,这时工厂方法模式
孕育而生,它把工厂的实例化延迟到了子类,把case分支拆分成一个个工厂子类
。
9.原型模式
在构造函数
执行时间耗时的情况下可以通过克隆
(即原型模式)的方式实例化一个对象以提高性能。
.NET在System命名空间中提供了ICloneable
接口来实现原型模式,->MemberwiseClone(浅表复制)。在Unity中原型模式最最最常见了->Prefab(预制体)。
10.模板方法模式
在父类中定义一个操作算法框架,将里面的某些步骤延迟到子类实现,子类就不需要关系算法的逻辑了。每个人是继承自人类
,人有学习的功能,获取知识的途径(看书、上网、微服私访、…),这些知识进入大脑后,不同的人会按自己独有的方式吸收知识:
相关文章
- 设计模式(学习笔记1)
- 笔记:The Seven Steps to Building a Successful Software Development Company
- 《SRE实战手册》学习笔记之SRE落地实践
- SNMP学习笔记之SNMPWALK 命令
- 正则表达式 学习笔记
- Python文件夹copy器(多进程版)学习笔记
- 06-多进程之间通过Queue来实现数据共享学习笔记
- knn k-近邻 学习笔记
- C#设计模式学习笔记-单例模式
- Unity UI Toolkit学习笔记-Visual Tree
- Unity特效学习笔记_幽冥鬼火
- 设计模式C++学习笔记之十六(Observer观察者模式)
- 设计模式C++学习笔记之九(Template Method模板方法模式)
- 设计模式C++学习笔记之八(Adapter适配器模式)
- 设计模式C++学习笔记之二(Proxy代理模式)
- boost asio io_service学习笔记
- python学习笔记(六)——异常处理
- java并发编程实践笔记