第一章面向对象涉及原则

我们设计类的时候一般要遵循一些原则

 

1.单一原则(SRP),每个对象只负责自己的事情,避免重复交叉,这样以后维护起来方便

2.里氏替换原则(LSP)和依赖倒置原则(DIP) 就是依赖抽象而非具体从而使软件在以后维护中更加的方便,具体点说就是利用接口和抽象类达到这样的目的

比如一个接口 IRun里面定义了一个run()方法,继承的有自行车run汽车run,那么我客户端只需要调用这个接口,run即可,不再跟汽车自行车,这样达到抽象,通用,同样这个例子也适合下面一个法则

 

举一个简单的例子,直接贴代码,相信大家都看得懂

 interface Itest
    {
        void a();
    }

    class test1 : Itest 
    {
        public void a()
        {
            Console.WriteLine("这是类 test1 输出的值");
        }
    }

    class test2 : Itest 
    {
        public void a() 
        {
            Console.WriteLine("这是类 test2 输出的值");
        } 
    }

    class t
    {
        public t(Itest test)
        {
            test.a();//这样做在输出结果产生变化的时候。不需要改动t类。
        }
    }

    class Program
    {

        static void Main(string[] args)
        {
            Console.Write("调用并输入类 test1 的值:");
            new t(new test1());
            Console.WriteLine("----------------------");
            Console.Write("调用并输入类 test2 的值:");
            new t(new test2());
            Console.ReadLine();            
        }
    }

  

3.接口隔离原则

比如一个系统ERP需要人员信息,但是我们不想对象太过于Fat,那么我们可以对同一个接口声明在不同的名字空间下,需要的时候调用哪个,如果需要全部,这些接口组合下就是一个完整的大对象

如A名字下Iperson 包含name,sex,

B名字空间下包含 workexperience,introduction等

需要的时候灵活的调用

 

4.迪米特法则 

这个法则要求我们各司其职,不跟陌生人打交道,就像贩毒组织一样,每个人只知道每个人的下线,不与其他人交接,否则就混乱危险,呵呵,这么比喻不恰当,也如当年地下组织一般

5.开闭原则  它是集大成者了简单点说就是对软件的扩展性以及维护性的一个良好原则,我们本着不需要更改软件尽量不大改,达到扩展伸缩自如,这就是一个良好的开闭原则,需要更高的抽象和组织

 

好今天就到这里

你可能感兴趣的:(面向对象)