单一责任原则

前端之家收集整理的这篇文章主要介绍了单一责任原则前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

单一责任原则(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

猜你在找的设计模式相关文章