1单例模式:
特点1.一个类只能有一个实例;
2.自己创建这个实例;
3.整个系统都要使用这个实例。
单例模式的基本构造
- 私有的构造方法(确保全局唯一性)
- 私有的、静态的实例化变量应用
- 提供一个公有的、静态的获取类实例对象方法
2.工厂模式:
定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。这满足创建型模式中所要求的“创建与使用相分离”的特点。
使用场景:比如说写技能是一系列类,那么就可以使用工厂模式创建。
游戏场景转换;角色AI状态管理。
3. 观察者模式 (服务器与客户端之间的通信)
观察者模式定义了对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知,并自动更新。
类似于邮件订阅和RSS订阅,当我们浏览一些博客或wiki时,经常会看到RSS图标,就这的意思是,当你订阅了该文章,如果后续有更新,会及时通知你。
多用于角色血条值下降被改变(防御力、攻击力等)
4. 发布-订阅者模式(服务器与客户端之间的通信)
是一种消息范式,消息的发送者(称为发布者)不会将消息直接发送给特定的接收者(称为订阅者)。而是将发布的消息分为不同的类别,无需了解哪些订阅者(如果有的话)可能存在。同样的,订阅者可以表达对一个或多个类别的兴趣,只接收感兴趣的消息,无需了解哪些发布者存在。
事件中心模块就是一种发布订阅模式的样板
5. 组合模式
组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。
多用于: 您希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象。
例如:不同的界面的逻辑和UI通过一个管理器统一控制。不同的类继承同一个接口,然后字典用这个接口统一管理。
6.MVC
MVC全名是Model View Controller,是模型(Model)-视图(View)-控制器(Controller)的缩写,一种软件设计典范。
用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。
同一个模块内
M只用来操作数据并发送更新消息。
V只用来接受消息并控制界面显示跳转
使用C来处理界面与数据的频繁操作。
一般流程:
- View(界面)触发事件
- Controller (业务)处理了业务触发数据更新
- 更新了Model (数据)
- Model(带着数据)回到了View(界面)
- View更新了数据
总结一下,关于MVC各层之间关系所对应的设计模式
-
View层,单独实现了组合模式。
-
Model层和View层,实现了观察者模式。
-
View层和Controller层,实现了策咯模式。
7. 代理模式
一个是真正的你要访问的对象(目标类),一个是代理对象,真正对象与代理对象实现同一个接口,先访问代理类再访问真正要访问的对象。
代理模式就是多一个代理类出来,替原对象进行一些操作。
比如我们在租房子的时候回去找中介,为什么呢?因为你对该地区房屋的信息掌握的不够全面,希望找一个更熟悉的人去帮你做,此处的代理就是这个意思。再如我们有的时候打官司,我们需要请律师,因为律师在法律方面有专长,可以替我们进行操作,表达我们的想法。
多用于代理Text, Button, Image等组件的功能;登陆设置;委托;代理下载资源等。
### 8. 策略模式
定义一系列算法,并将每个算法封装起来,使他们可以相互替换,且算法的变化不会影响到使用算法的客户。
策略模式的决定权在用户,系统本身提供不同算法的实现,新增或者删除算法,对各种算法做封装。因此,策略模式多用在算法决策系统中,外部用户只需要决定用哪个算法即可。
多用于技能效果类和方法的构建。