什么是设计模式?
设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计
模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。
为什么要学习设计模式?
看懂源码:如果你不懂设计模式去看Jdk、Spring、SpringMVC、IO等等等等的源码,你会很迷
茫,你会寸步难行。
学会前辈的代码:你去个公司难道都是新项目让你接手?很有可能是接盘的,前辈的开发难道不用
设计模式?
编写好自己的代码:熟练的使用设计模式才会让自己变得更优秀,有的工作2-3年的程序员写的代码不仅难看,可维护性还较差。谁不想初来乍到,就能写一手优秀的代码呢!
设计模式分类
![](https://img-blog.csdnimg.cn/img_convert/8190a632b258e360135e260afd6a1f39.png)
设计模式六大原则(POLIDD)
单一职责(Principle of single responsibility)
原则思想:一个方法只负责一件事情
描述:单一职责原则很简单,一个方法 一个类只负责一个职责,各个职责的程序改动,不影响其它程序。 这是常识,几乎所有程序员都会遵循这个原则。
优点:降低类和类的耦合,提高可读性,增加可维护性和可拓展性,降低可变性的风险。
开放封闭原则(Open Close Principle)
原则思想:尽量通过扩展软件实体来解决需求变化,而不是通过修改已有的代码来完成变化
描述:一个软件产品在生命周期内,都会发生变化,既然变化是一个既定的事实,我们就应该在设计的时候尽量适应这些变化,以提高项目的稳定性和灵活性。
优点:单一原则告诉我们,每个类都有自己负责的职责,里氏替换原则不能破坏继承关系的体系。
里氏代换原则(Liskov Substitution Principle)
原则思想:使用的基类可以在任何地方使用继承的子类,完美的替换基类。
描述:子类可以扩展父类的功能,但不能改变父类原有的功能。子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法,子类中可以增加自己特有的方法。
优点:增加程序的健壮性,即使增加了子类,原有的子类还可以继续运行,互不影响。
依赖倒转原则(Dependence Inversion Principle)
原则思想:依赖倒置原则的核心思想是面向接口编程.
描述:依赖倒转原则要求我们在程序代码中传递参数时或在关联关系中,尽量引用层次高的抽象层类,
优点:这个是开放封闭原则的基础,具体内容是:对接口编程,依赖于抽象而不依赖于具体。
接口隔离原则(Interface Segregation Principle)
原则思想:使用多个隔离的接口,比使用单个接口要好。
描述:还是一个降低类之间的耦合度的意思,从这儿我们看出,其实设计模式就是一个软件的设计思想,从大型软件架构出发,为了升级和维护方便。所以上文中多次出现:降低依赖,降低耦合。例如:支付类的接口和订单类的接口,需要把这俩个类别的接口变成俩个隔离的接口
迪米特法则(最少知道原则)(Demeter Principle)
原则思想:一个对象应当对其他对象有尽可能少地了解,简称类间解耦
描述:大概意思就是一个类尽量减少自己对其他对象的依赖,原则是低耦合,高内聚,只有使各个模块之间的耦合尽量的低,才能提高代码的复用率。
优点:低耦合,高内聚。