1、什么是设计模式?
设计模式是一套被反复使用、多人知晓、分类编目、代码设计经验的总结。使用设计模式是为了可重用代码,保证代码的可靠性,使代码编制真正的工程化,能够适应需求的变化。
实现代码功能的复用:
(1)继承机制(UML中体现为泛化);
(2)组合(聚合),也可以是导航;
(3)多态,父类类型可以执行任何子类对象;
(4)类是对对象的抽象,抽象类是对类的抽象,接口是对行为的抽象。
2、面向对象原则
(1)单一职责原则
在定义一个类的时候,不能把各样格式的功能代码,如:某种运算的算法、数据库访问的sql语句等,都写在同一个类中,如果这样做,各个功能模块代码耦合度太高。最好的选择是一个类值实现一个单一的功能。
(2)开放-封闭原则
在做任何系统的时候,都不能指望系统一开始就需求确定而再也不会改变,这时一种不显示,也不科学的想法。需求是会变化的,那么如何在面对需求变化的时候,设计的软件可以相对容易修改?怎样的设计才能面对需求的改变却可以保持相对稳定?从而使系统可以在第一个版本以后不断退出新的版本,遵守“开放-封闭原则”。
(3)依赖倒置原则
依赖倒置原则,就是要依赖与抽象,不要依赖于具体。简单的说就是要求对抽象进行编程,不要对实现进行编程。这样就降低了客户与实现模块的耦合。如:以计算机为例,主板、cup、内存、硬板都是针对接口进行设计的。
(4)里氏替换原则
定义:子类型必须更能够替换它们的父类型。
如果一个软件中使用的是一个父类,那么一定适用于其子类。软件中察觉不出父类对象和子类对象的区别。即在软件里,把父类都替换成它的子类,程序的行为没有发生变化。
(5)迪米特法则
定义:如果两个类不必彼此直接通信,那么着两个类就不能发生直接的相互作用。如果一个类需要调用另一个类的某一个方法,可以通过第三者转发这个调用。
在类的结构设计中,每一个类都应该尽量降低成员的访问权限,即一个类包封装好自己的private状态,不需要让别的类知道字段或者行为就不要公开。
迪米特法则强调类之间的松耦合。耦合度越低,越有利于复用,一个处在若耦合的类被修改,不会对有关系的类在成影响。