核心
一个类只负责一项职责
优点
实例
交通工具
分为轮船,飞机、汽车。每个类实现一个职责
DAO类
一个DAO负责一个表的增删改查。
代码
代码部分参考了尚硅谷韩顺平老师的内容。
/**
* @program:design_pattern
* @descript:公路
* @author: luyongjian746
* @create: 2020-02-11
*/
public class Road {
public void run(String vehicle) {
System.out.println(vehicle + "在公路上跑");
}
}
/**
* @program:design_pattern
* @descript:天空
* @author: luyongjian746
* @create: 2020-02-11
*/
public class Sky {
public void run(String vehicle) {
System.out.println(vehicle + "在空中飞");
}
}
/**
* @program:design_pattern
* @descript:海
* @author: luyongjian746
* @create: 2020-02-11
*/
public class Sea {
public void run(String vehicle) {
System.out.println(vehicle + "在海中航行");
}
}
/**
* @program:design_pattern
* @descript:测试
* @author: luyongjian746
* @create: 2020-02-11
*/
public class Test {
public static void main(String[] args) {
Road road = new Road();
road.run("汽车");
Sky sky = new Sky();
sky.run("飞机");
Sea sea = new Sea();
sea.run("轮船");
}
}
结果:
汽车在公路上跑
飞机在空中飞
轮船在海中航行
核心
客户端不应该依赖于他不需要的接口。即一个类对另外一个类的依赖,应该建立在最小的接口上。
将大接口拆解成多个小的接口。
作用
核心
高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象。
其核心思想是:要面向接口编程,不要面向实现编程。
作用
依赖倒置原则可以降低类间的耦合性。
依赖倒置原则可以提高系统的稳定性。
依赖倒置原则可以减少并行开发引起的风险。
核心
子类继承父类时尽量不要重写父类的方法。
优点
实例
核心
对扩展开放,对修改关闭。用抽象构建框架,用实现扩展细节。
作用
开闭原则是面向对象程序设计的终极目标,它使软件实体拥有一定的适应性和灵活性的同时具备稳定性和延续性。具体来说,其作用如下。
软件遵守开闭原则的话,软件测试时只需要对扩展的代码进行测试就可以了,因为原有的测试代码仍然能够正常运行。
粒度越小,被复用的可能性就越大;在面向对象的程序设计中,根据原子和抽象编程可以提高代码的可复用性。
遵守开闭原则的软件,其稳定性高和延续性强,从而易于扩展和维护。
核心
子类可以扩展父类的功能,但不能改变父类原有的功能。
如果不是直接朋友,在一个方法中出现了其他类的局部变量,就违反了迪米特法则。
直接朋友是指,某方法的参数,返回值所使用的类,则此类为该方法所属类的直接朋友。
作用
核心
尽量使用合成或复用代替继承。
合成:A类作为成员变量或者参数的形式出现在B类
复用:A类以new A()的方式出现在B类中
作用
原文:https://blog.51cto.com/12133258/2471425