加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

单一责任原则

发布时间:2020-12-13 19:43:23 所属栏目:百科 来源:网络整理
导读:单一责任原则(Simple Responsibility Principle):又简称为SRP,通俗的解释就是一个类,应该仅有一个引起它变化的原因,很简单的解释就是一个类只负责一向责任就o了。 为什么会产生这样的编程原则呢?因为当一个类中含有两个责任的时候的,一个责任的变化

单一责任原则(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简化了类的复杂度,有利于系统的维护。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读