设计模式(一)

设计模式(一)

1.开闭原则:软件实体应当对外扩展开放,对修改关闭(修改程序是:增加新功能,不准修改原来的程序代码,只能增加新的代码)

2.里氏替换原则:所有引用基类的地方必须能透明的使用其子类的对象;(不能修改父类,我们可以抽象出来一个类 ,让其他物体都继承它)

在面向对象中,继承有很多优点:

       1)代码共享,减少创建类的工作量,每个子类都拥有父类的方法和属性;

       2)提高代码的重用性;

       3)子类可以形似父类,但又异于父类,“龙生龙,凤生凤,老鼠生来会打洞”是说子拥有父的“种”,“世界上没有两片完全相同的叶子”是指明子与父的不同;

       4)提高代码的可扩展性,实现父类的方法就可以“为所欲为”了,君不见很多开源框架的扩展接口都是通过继承父类来完成的;

       5)提高产品或项目的开放性。

3.依赖倒转原则:依赖倒转原则就是要求客户端依赖于抽象耦合。表述是:抽象应该不依赖于细节,细节应该依赖于抽象;另一种表述:要针对接口编程,不要依赖实现编程。抽象耦合是依赖倒转原则的关键,历史替换原则是依赖倒转原则的基础(历史替换下次讲到)

       1)依赖:A use a B ,那么A对B产生了依赖

      2)依赖关系的种类:

            *:零耦合关系:如果两个类中没有耦合关系,称为零耦合

             

                    *:具体耦合关系:发生在两个具体的类(可实例化)之间,由一个类对另一个类的直接引用造成的;

         

           *:抽象耦合关系:抽象耦合关系发生在一个具体类和一个抽象类(接口)之间,使两个必须发生关系的类之间存在最大的灵活性

            

 在实际编程中,我们一定要做到一下3点:

  • 低层模块尽量都要有抽象类或接口,或者两者都有。
  • 变量的声明类型尽量是抽象类或接口。
  • 使用继承时遵循里氏替换原则。
我们什么都没有,唯一的本钱就是青春。梦想让我与众不同,奋斗让我改变命运!
原文地址:https://www.cnblogs.com/mengmengxia/p/6822020.html