C#设计模式
款冬
所有文章搬运自个人Github: https://github.com/YuzikiRain/Learn。
如遇到csdn显示问题,复制文章标题到Github的Learn仓库中直接查看markdown原文
展开
-
享元模式
简述用法一:与缓存池用法类似,实例根据情况(需要访问的实例在池中不存在、取出池的实例长时间不使用等)进行动态增减。 用法二:如果有某个 Item 类需要大量创建其实例,且具有大量初始化后就不会发生再改变的字段时,可以将这些字段提取出来作为一个 ItemAttribute 类中的字段,所有 Item 类实例持有同一个 ItemAttribute 类实例的引用,需要访问某些字段时直接访问 It...原创 2018-06-11 17:23:16 · 108 阅读 · 0 评论 -
状态模式
状态模式其实就是使用有限状态机FSM,以下是我用于自己开发的游戏的例子:代码:using System;enum Condition{Undefined, BeAttack, Close2Cover};enum StateID{StateIdle, StateRun, StateCover};abstract class StateBase{ //一些数据成员 ...原创 2018-06-13 17:50:18 · 117 阅读 · 0 评论 -
外观模式
简述外观模式:为复杂的子系统提供统一的接口,让外观类可以统一通过该接口对所有子系统进行管理。原来的子系统有很多混乱的方法,外部调用时无法进行统一管理。使用外观模式后,子系统继承自同一个基类,拥有统一的可被外部调用的方法,外观类可统一管理,且不需要关心子系统各自内部的独特方法(即无法统一的“混乱的”方法,因为每个子系统都有自己的独特的逻辑处理嘛)。不使用外观模式:using Sys...原创 2018-06-13 19:14:29 · 117 阅读 · 0 评论 -
单例模式
简述创建私有变量 _instance,内部进行实例化(用以记录 Singleton 的唯一实例)。把类的构造方法私有化,不让外部调用构造方法实例化。定义公有方法或属性提供该类的全局唯一访问点。代码:using System; public class Singleton { //1. 创建私有变量 _instance,内部进行实例化(用以记录 Singleton...原创 2018-06-15 15:25:39 · 118 阅读 · 0 评论 -
模板方法模式
简述在抽象类中定义多个virtual子方法和某个普通执行方法,该执行方法内按一定顺序执行这些子方法(不一定要全部都执行)继承该抽象类的子类重写子方法来实现不同子类之间的不同执行细节,但是不要覆盖父类中的执行方法代码:using System; abstract class TemplateMethod { public void Execute() ...原创 2018-06-09 11:38:45 · 118 阅读 · 0 评论 -
策略模式
using System;class Person{ public IMethod method; public void Print(string message) { method.Print(message); }}class A : IMethod{ public void Print(string message) ...原创 2018-06-09 11:54:41 · 184 阅读 · 0 评论