博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第一章面向对象涉及原则
阅读量:6848 次
发布时间:2019-06-26

本文共 1364 字,大约阅读时间需要 4 分钟。

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

 

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

 

好今天就到这里

转载地址:http://txoul.baihongyu.com/

你可能感兴趣的文章
数据库表TreeView树的快速生成
查看>>
linux 下 MySQL源码包的安装
查看>>
Windows 8开发者训练营第一日-来自现场的图片报道
查看>>
Android 禁止屏幕旋转 & 旋转屏幕时保持Activity内容 转
查看>>
NOOK中国风屏保
查看>>
IOS(CGContent画曲线)
查看>>
REVIT机电管线支架族的创建
查看>>
MFC经典好博文 .
查看>>
Direct2D教程(十)绘制文本
查看>>
如何设计页面固定广告的效果
查看>>
SQLSERVER排查CPU占用高的情况
查看>>
PHP开发Android应用程序(转)
查看>>
Knockout.js随手记(8)
查看>>
mysql 安装过程中的错误:my-template.ini could not be processed and written to XXX\my.ini.Error code-1...
查看>>
计算A/3,不用除法
查看>>
ERStudio的使用
查看>>
git 本地与服务器的同步
查看>>
css鼠标移动到文字上怎样变化背景颜色
查看>>
HBase 实战(1)--HBase的数据导入方式
查看>>
浅谈WEB页面提速(前端向)
查看>>