编程知识 购物 网址 新闻 笑话 | 软件 日历 阅读 图书馆 China
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
vbs/VBScript DOS/BAT hta htc python perl 游戏相关 VBA 远程脚本 ColdFusion ruby专题 autoit seraphzone PowerShell linux shell Lua Golang Erlang 其它教程 CSS/HTML/Xhtml html5 CSS XML/XSLT Dreamweaver教程 经验交流
站长资讯 .NET新手 ASP.NET C# WinForm Silverlight WCF CLR WPF XNA VisualStudio ASP.NET-MVC .NET控件开发 EntityFramework WinRT-Metro Java C++ PHP Delphi Python Ruby C语言 Erlang Go Swift Scala R语言 Verilog 其它语言 架构设计 面向对象 设计模式 领域驱动 Html-Css JavaScript jQuery HTML5 SharePoint GIS技术 SAP OracleERP DynamicsCRM K2 BPM 信息安全 企业信息 Android开发 iOS开发 WindowsPhone WindowsMobile 其他手机 敏捷开发 项目管理 软件工程 SQLServer Oracle MySQL NoSQL 其它数据库 Windows7 WindowsServer Linux
   -> 领域驱动设计 -> 解读设计模式 -> 正文阅读

[领域驱动设计]解读设计模式

技术是死的,功能是活的。如何实现一个功能有很多种方式,如何快速灵活高效的实现这些功能就是一门艺术了。这其中可能会组合式的用到设计模式,这就是架构。当你会使用设计模式的时候我相信你会爱上它!
一、创建型模式
1、工厂方法模式:使用继承,动态实例化不同的对象执行相同的方法。
2、抽象工厂模式:
3、单例模式:通过static关键字保证系统中一个类只有一个实例
4、建造者模式:
5、原型模式:
二、结构型模式
6、适配器模式:
7、装饰器模式:使用依赖倒置原则,在对象的方法上又封装一层。
8、代理模式:
9、外观模式:
10、桥接模式:
11、组合模式:
12、亨元模式:
三、行为型模式
13、策略模式:
14、模板方法模式:
15、观察者模式:使用事件的方式提前把观察者的反应注册到被观察者的事件中,等待被观察者触发
16、迭代子模式:
17、责任链模式:
18、命令模式:
19、备忘录模式:
20、状态模式:
21、访问者模式:
22、中介者模式:
23、解释器模式:
四、设计模式六大原则
1、单一职责原则:
2、里氏替换原则:
3、依赖倒置原则:
4、接口隔离原则:
5、迪米特法则:
6、开闭原则:
单例模式

    public class SingletonClass
    {
        private static  SingletonClass instance=null;
        public static SingletonClass GetInstance()
        {
            if(instance==null)
            {
                instance=new SingletonClass();
            }
            return instance;
        }
        private SingletonClass(){}

        public void MyFuntion()
        {
             //do some thing
        }
    }
    //调用示例
    public class TestSingletonClass
    {
        public void DoSomeThing()
        {
                SingletonClass.GetInstance().MyFuntion();
        }
    }

依赖倒置原则

    public interface ICar
    {
        public void Run();
    }
    public interface IDriver
    {
        public void DriverCar(ICar car);
    }


    public class BM : ICar
    {
        public void Run()
        {
            //do some thing
        }
    }
    public class Driver : IDriver
    {
        public void DriverCar(ICar car)
        {
            car.Run();
        }
    }
    //调用示例
    public class TestDriveCar
    {
        public void SomeOneDriveCar()
        {
            IDriver zhangSan = new Driver();
            ICar BaoMa = new BM();
            zhangSan.DriverCar(BaoMa);
        }
    }

观察者模式(两种方式,一种使用面向对象思想把观察者的对象添加到被观察中,一种是使用微软自带的事件添加到被观察的事件中)
最经典的示例:猫叫,老鼠跑,孩子哭,妈妈醒来......

    public class Cat
    {
        private List<Observer> obServerList=new List<Observer>();
        public void Add(Observer obServer)
        {
            obServer.Add(obServer);
        }
        public void Remove(Observer obServer)
        {
            obServer.Remove(obServer);
        }
        public void Miao_Observer()//猫叫
        {
            foreach(Observer obServer in obServerList)
            {
                obServer.ActionFuntion();
            }
        }


        public Action OnCatMiaoHandler;
        public void Miao_Event()//猫叫
        {
            foreach(Action action in OnCatMiaoHandler.GetInvocationList())
            {
                action.Invoke();
            }
        }
    }
    //调用示例
    public class TestCat
    {
        Mouse mouse1=new Mouse();
        Child child1=new Child();
        void Miao_ObserverTest()
        {
            Cat cat =new Cat();
            cat.Add(mouse1);
            cat.Add(child1);

            cat.Miao_Observer();
        }
        void Miao_EventTest()
        {
            Cat cat =new Cat();
            cat.OnCatMiaoHandler+=mouse1.Run;
            cat.OnCatMiaoHandler+=child1.Cry;

            cat.Miao_Event();
        }
    }


     public abstract class Observer
       {
         public abstract void ActionFuntion();
       }
    public class Mouse:Observer
    {
        public void ActionFuntion()
        {
            this.Run();
        }
        public void Run()//老鼠跑
        {

        }
    }
    public class Child:Observer
    {
          public void ActionFuntion()
        {
            this.Cry();
        }
        public void Cry()//孩子哭
        {

        }
    }

游戏中的示例:当玩家攻击了其中之一的敌人时,那个队伍的所有敌人都会注意到玩家,在攻击范围的敌人会掉血,并且开始攻击玩家
参考:http://blog.csdn.net/sinat_20559947/article/details/50046201
未完待续...
  领域驱动设计 最新文章
领域驱动设计的基础知识总结
海西 · 云交付 DevOps实践落地方案
多服务器终端交互利器
《静儿的服务治理私房菜》服务治理和架构
服务治理概述
美团.点评服务治理框架
ASP.NET Zero
1.领域驱动简介.2.领域.子域.限界上下文.3.
东麓庄园系统开发
东麓庄园系统开发
上一篇文章      下一篇文章      查看所有文章
加:2017-03-31 15:02:44  更:2017-05-16 03:48:35 
 
360图书馆 软件开发资料 购物精选 新闻资讯 Chinese Culture 三丰软件 开发 中国文化 阅读网 日历 万年历 2019年12日历
2019-12-8 9:13:10
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  编程知识