首页 > 代码库 > C#设计模式

C#设计模式

 

自从上次记录完“重构之道”以后,查询设计模式挺麻烦的。就打算把原先写的设计模式系列合并一下。

设计原则

使用设计模式的根本原因就是适应需求变化,提高代码的复用率,使程序更具有扩展性和可维护性。

SOLID原则和七大原则

想必S.O.L.I.D大家都知道,面向对象的五大设计原则。其中C#设计模式,又添加了以下两条原则。总共是7大设计原则。

SRP(单一责任原则):只有一种原因会导致某个类的修改。让一个类只做一种类型责任,如需承担其他类型的责任时,应分解这个类。

OCP(开放封闭原则):软件实体(类,函数,模块等)应该对扩展开放,对修改关闭。每发生变化,需要通过添加新代码来增强类型的行为,而不是修改原有代码。

LSP(里氏替换原则):当子类替换掉他们的父类型,软件功能不受影响,父类才能真正使用,子类可以在父类的基础上添加新的行为。

ISP(接口隔离原则):使用专门的接口比使用单一的总接口要好很多。不要让单一接口承担过多的职责,针对职责进行接口分离。

DIP(依赖倒置原则):抽象不应该依赖于细节,细节应该依赖于抽象,面向接口编程。可以降低客户与具体实现的耦合。

CRP(合成复用原则):使用合成/聚合,尽量不要使用继承。在新的对象中,使用一些已有对象,让他成为新对象的一部分。

LOD(迪米特法则):一个模块或对象应尽量少与其他实体之间发生相互作用,使得系统相对独立,这样修改影响会减少,扩展会更容易。

创建型模式

用来创建对象的模式,抽象了实例化过程。有两个共同点。1.都将使用的具体类进行封装。2.隐藏类的实例是如何被组织创建的。

单例模式

确保一个类只有一个实例,并提供一个全局访问点。

技术分享
//使用单例模式创建类    public class Goddess    {        //封装具体类        private static Goddess _goddess;        //使用lock锁,定义锁定的静态变量        private static object _obj = new object();        //创建全局访问点        public static Goddess CreateGoddess()        {            if (_goddess != null)            {                return _goddess;            }            //使用lock锁过滤            lock (_obj)            {                if (_goddess == null)                {                    _goddess = new Goddess();                }                return _goddess;            }        }    }
单例模式

 

 

 

 

 

 

 

 

 

 

 

 

 

占位符

C#设计模式