zl程序教程

您现在的位置是:首页 >  工具

当前栏目

大话设计模式-笔记

2023-09-27 14:27:14 时间

1.简单工厂

一个生成各种水果罐头的工厂,根据订单生产对应的罐头给客户。

水果罐头 = 工厂.生产水果罐头("梨罐头";
水果罐头.打开();
Log("好好吃呀");

2.策略模式

它呢跟上面的老兄简单工厂里的工厂很相似,可以把它看作一个保姆,保姆去工厂拿主人想吃的水果罐头。主人完全不需要自己做就可以吃到美味的梨罐头啦。

取罐头的保姆 = new 取罐头的保姆("梨罐头");
Log("保姆把梨罐头取回来啦");
取罐头的保姆.打开罐头();
Log("主人吃的了美味的梨罐头");

保姆封装了一系列琐碎的事情,使得主人可以很安逸的享受服务,比起简单工厂模式如果如果没有保姆代劳这个喜欢吃罐头的主人就要自己去找罐头还要自己开罐头。

3.单一职责原则

在做一个程序时有UI逻辑,要尽量把它们两分离开,在逻辑中避免混杂UI部分可以让容易变化的部分(UI)的改动不会影响到不容易变化的部分(逻辑)。总而言之就是每个人负责的事情要单一,分工合作。

4.开放(扩展)-封闭(修改)原则

尽量让之前写的代码不做修改,而是新增一些类做扩展。需要修改时创建抽象频繁发生的变化来隔离开。

5.依赖倒转原则

“针对接口编程,不要对实现编程。”

调用
高层模块
低层模块
xxx接口

里氏代换原则

子类拥有父类所有的非private的方法和属性。
如下图所示,因为鸵鸟并不具备飞行的功能,如果继承了鸟类鸵鸟就会飞行了,这是不对的。因此鸵鸟不能继承鸟类

鸟类 +飞行() 鸵鸟 +奔跑() x不能继承x

6.装饰模式

安妮在给它的小熊打扮,她给小熊穿上了绣着鲜花的七分裤子,然后给小熊穿上了洁白的衬衫,给它戴了顶大大的太阳帽。打扮好后安妮把小熊塞进了新买的书包上学去啦。
装饰模式把小熊和装饰分离,安妮按顺序给小熊穿搭,不同的顺序会打扮出不一样的小熊熊哦~(内裤与外裤←_←)。

7.代理模式

代理代理取而代之。当下疫情未过很多人通过点外卖的方式吃饭,通过外卖小哥配送(代理、代劳)就可以在家取到可口的街边美食了。喝酒应酬不能开车需要找代驾…总之就是找个替身你会的那个替身就必须会,代替你做事情隐藏自己的身份(其实我的真实身份是🤫)

8.工厂方法模式

因为在简单工厂模式添加新的功能时需要在代码中做修改(添加case分支)违背了开放-封闭原则,这时工厂方法模式孕育而生,它把工厂的实例化延迟到了子类,把case分支拆分成一个个工厂子类

工厂方法模式
简单工厂模式
分支
分支
分支
继承
继承
继承
实例化
实例化
实例化
实例化
工厂子类:0
工厂子类:1
工厂子类:2
工厂
简单工厂
case:0
case:1
case:2
实例

9.原型模式

构造函数执行时间耗时的情况下可以通过克隆(即原型模式)的方式实例化一个对象以提高性能。
.NET在System命名空间中提供了ICloneable接口来实现原型模式,->MemberwiseClone(浅表复制)。在Unity中原型模式最最最常见了->Prefab(预制体)。

10.模板方法模式

在父类中定义一个操作算法框架,将里面的某些步骤延迟到子类实现,子类就不需要关系算法的逻辑了。每个人是继承自人类,人有学习的功能,获取知识的途径(看书、上网、微服私访、…),这些知识进入大脑后,不同的人会按自己独有的方式吸收知识:

Mon 06 12:00 Tue 07 12:00 Wed 08 12:00 Thu 09 12:00 Fri 10 知识来源:看书 吸收方式:躺着 知识来源:上网 吸收方式:坐着 知识来源:微服私访 吸收方式:边走边看 人类一号 人类二号 人类三号 人类的功能:学习知识