C#设计模式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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#设计模式的主要内容,如果未能解决你的问题,请参考以下文章

此 Canon SDK C++ 代码片段的等效 C# 代码是啥?

是否可以动态编译和执行 C# 代码片段?

C#常用代码片段备忘

优化 C# 代码片段、ObservableCollection 和 AddRange

VS2015使用技巧 打开代码片段C#部分

记录C#常用的代码片段