你的位置:首页 > ASP.net教程

[ASP.net教程]程序员七大面向对象设计原则


在没有了解到面向对象设计的7大原则前,我只是一只豆子!   但豆子终将会成长不是吗? 

1.开闭原则:一个软件实体应当对扩展开放,对修改关闭。也就是说在所涉及一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展,即实现在不修改源代码的情况下改变这个模块的行为。

   在开闭原则的定义中,软件实体可以指一个软件模块、一个由多个类组成的局部结构或一个读库的类。

   抽象化是开闭原则的关键。

 是添加新代码完成方法的重构  而不是修改源代码

声明: 本文源自   

 

2.依赖倒转原则:高层模块不应该依赖低层模块,他们都应依赖抽象。抽象不应该依赖于细节,细节应该依赖于抽象。

        要针对接口编程,不要针对实现编程。
        代码要依赖于抽象的类,而不要依赖于具体的类;要针对接口或抽象类编程,而不是针对具体类编程。
        实现开闭原则的关键是抽象化,并且从抽象化导出具体化实现,如果说开闭原则是面向对象设计的目标的话,那么依赖倒转原则就是面向对
        象设计的主要手段。
        依赖倒转原则的常用实现方式之一是在代码中使用抽象类。而将具体类放在配置文件中。
        依赖注入:构造注入:通过构造函数注入实例变量      设值注入:通过Setter方法注入视力变量      接口注入:通过接口方法注入实例变量

声明: 本文源自  

3.里氏替换原则: 子类出现在父类出现的位置,且不影响程序的运行。但是反过来就是父类对象是不能替换子类对象的。

         有了里氏替换原则,才使继承复用成为可能,

         子类可以在父类的基础上添加新的行为。(子类要比父类优秀)

                        子类型必须能替换掉他的父类型。

 Pass :了解更多

 

4.单一职责原则:一个对象应该只包含单一的职责,且该职责要被封装在具体的一个类中。

        即一个类只做单一的事,避免繁杂类的出现,使得类的继承和重载更加的方便。

耦合性(Coupling),也叫耦合度,是对模块间关联程度的度量。耦合的强弱取决与模块间接口的复杂性、调用模块的方式以及通过界面传送
数据的多少。模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越强,同时
表明其独立性越差。软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准。划分模块的一个准则就是高内聚低耦合。

 Pass :了解更多

 

 5.接口隔离原则:客户端不应该依赖于那些他不需要的接口。

        在使用接口的时候,为客户端提供指定的接口大小,按需分配,隐藏客户端不需要的接口。

        接口隔离原则是指:不使用单一的总接口,每一个接口应承担相对独立的角色。

        类应完全依赖相应的专门的接口。

Pass:  了解更多

 

6.合成复用原则 :尽量使用对象组合,而不是使用继承来达到复用的目的。

        一般来说使用继承的时候,要严格遵守里氏替换原则,基类的细节对于子类是可见的,这种方式属于静态的,

      减少了程序的灵活性,如果基类发生改变,其子类也不得不随之变动。

        一般来说首先使用"组合/聚合" 降低类于类之间耦合度,减少类的变化对其他类的影响。

 

 合成复用原则 :就是在一个新的对象里通过关联关系(包括组合关系和聚合关系)来使用一些已有的对象,使之成为新对象的一部分;新对象通过委派调用已有对象的方法达到复用功能的目的。简言之:复用时要尽量使用组合/聚合关系(关联关系),少用继承

Pass 了解更多

 

 

7.迪米特法则:一个软件实体尽可能少的和其他软件实体发生相互作用。

         减少对象与对象之间的直接交互,创建中间类, 通过中间类进行对象与对象间的间接交互,

       当我们需要增加或删除空间的时候,就只需在中间类中进行调整,无需修改已有控件的源代码。

      降低程序之间的耦合度,使类于类之间呈现松散的耦合关系。程序更加的灵活。

 

 

灵活使用面向对象的准则,使我们的编程更加灵活,封装性更好,复用性更高,易于维护。