单一责任原则(Simple Responsibility Principle):又简称为SRP,通俗的解释就是一个类,应该仅有一个引起它变化的原因,很简单的解释就是一个类只负责一向责任就o了。
为什么会产生这样的编程原则呢?因为当一个类中含有两个责任的时候的,一个责任的变化可能会影响另外一个责任的实现,这样的互相影响不利用代码的可复用性,修改起来也是相当的费劲,而SRP就可以很好的解决这样的问题。
下面演示一个Demo:
1.下面是定义了一个类,有个eating的方法:
public class Person { public void eating(String who) { System.out.println(who + "吃饭"); } } class StartUp { public static void main(String[] args) { Person person = new Person(); person.eating("惠州人"); person.eating("广州人"); } }2.但是美国人喜欢吃面包啊,这时候有两种方法:
方法一:
public class Person { public void eating(String who) { if(who.equals("美国人")) System.out.println(who + "吃面包"); else System.out.println(who + "吃饭"); } } class StartUp { public static void main(String[] args) { Person person = new Person(); person.eating("惠州人"); person.eating("广州人"); person.eating("美国人"); } }方法二:
class EatRicePerson { public void eating(String who) { System.out.println(who + "吃饭"); } } class EatBreadPerson { public void eating(String who) { System.out.println(who + "吃面包"); } } class Start_Up { public static void main(String[] args) { EatRicePerson erp = new EatRicePerson(); erp.eating("惠州人"); erp.eating("广州人"); EatBreadPerson ebp = new EatBreadPerson(); ebp.eating("美国人"); } }从这里可以很容易看出方法二的步骤明显比方法一的多,显得更加的麻烦,但是方法一明显是违背了单一责任原则,一个eating方法中肩负了多种责任,如果以后要细分吃饭的人吃的是硬饭还是软饭,里面的都的逻辑性就更加的复杂了,SRP简化了类的复杂度,有利于系统的维护。 原文链接:https://www.f2er.com/javaschema/286083.html