﻿命名规范

接口名以 大写字母 I 开头

类名大写字母开头
私有类以下划线加大写字母开头

公开方法名(public)以大写字母开头

非公开方法名以下划线在大写字母开头 

字段(常量除外) 都是私有的 并且以下划线加小写字母开头

属性 都是公开的 并且以小写字母开头

常量 私有以下划线加大写字母开头

常量 公开以大写字母开头


设计模式

以下是创建对象的模式

简单工厂方法
public static Food CreateFood(string type){
	switch(type){
		case "type1":
		break;
		case "type2":
		break;
	}
}
简单工厂的缺点,当需要增加功能时，需要修改原有代码，违背了开闭原则(可用反射解决)。

工厂方法
每次创建实体时，需要先创建相应的工厂，再创建实体。增加功能时，无需修改代码，增加新的工厂即可。

抽象工厂模式
对工厂方法聚合， 工厂方法只能生产一类实体,抽象工厂把所有工厂聚合在一个类中。聚合在一起生产。

建造者模式
工厂方法是创建一个单一实体。建造者模式则可以把单一实体聚合在一起，生产一个复杂对象。

原型模式
原型模式是从原来的基础上拷贝一个来使用.Clone

以下属于结构模型

适配器模式
在原来的基础上，增加一个接口转变参数，适配老的接口。

桥接模式
让另外一个接口实现具体的功能
比如Class1 中 A,B,C 三个接口, Class2 中 A,B,C同样有三个接口, Class1 中执有 Class2 的实例，调用Class1中的接口时，直接呼Class2的接口。
这样实现方在 Class2 中. 好处是，当Class1 增加接口的时候,Class2 可以不作出修改。

装饰者模式
理由继承增加功能，原来的功能不变, 可以有多层功能。

组合模式
把类似的方法抽象出来, 用一个根节点管理。是树形结构的。

外观模式
对外暴露一个接口，外部使用同一调用这个接口，在内部由其他类型协调合作处理接口的具体事务。相当于一个黑盒，

享元模式
对象共享化, 把共享的部分放在内部(不会岁环境更改)，会更改的地方使用参数传递。目的是减少对象的创建。字符串的驻留机制

代理模式
接口调用时，调用代理的接口,代理再调用实例方法,代理持有实例, 当实例发生改变时,只需要跟换代理的实例。



模板方法
抽象类中实现方法，在方法的中途调用抽象方法，等实例方法来填充

命令模式
由命令 与 执行者组成  执行者去处理命令.

状态者模式:
状态抽象为对象, 处理事务有状态实例来处理,如果发生状态改变，则创建新的状态实例。 优点是增加状态， 不需要改变原来代码

策略者模式:
计算某个值时，使用不同策略得出不同结果

责任链模式:
处理事务自己处理不了就往下一个事务处理者抛出，直到处理完毕

访问者模式:
使数据外部可读，隐藏数据，不可修改

备忘录模式
允许对数据副本保存，用于下次恢复