1.类中的字段
2.方法的返回值
3.方法的参数
4.方法中的实例对象
5.对象本身
6.集合中的泛型
反例:关闭电脑的流程
class Computers{ public void closeFile(){ System.out.println("关闭文件"); } public void closeScreen(){ System.out.println("关闭屏幕"); } public void powerOff(){ System.out.println("断电"); } } class Person{ private Computers computers; public void offComputers(){ computers.closeFile(); computers.closeScreen(); computers.powerOff(); } }
当用户关闭电脑时,需要调用计算机的各个方法,但是这些方法的细节太多了,会出现用户流程出错,遗漏调用等等,对于用户来言,他只需要知道关机按钮就够了
正例:封装细节,提供接口
class Computers{ public void closeFile(){ System.out.println("关闭文件"); } public void closeScreen(){ System.out.println("关闭屏幕"); } public void powerOff(){ System.out.println("断电"); } public void offComputers(){ closeFile(); closeScreen(); powerOff(); } } class Person{ private Computers computers; public void offComputers(){ computers.offComputers(); } }
设计模式(5):JAVA(5):软件设计原则(5)迪米特法则(最少知道原则):封装,只和朋友通信
原文:https://www.cnblogs.com/qiu-hua/p/15227125.html