自建wap网站,厦门建站比较好的公司,酒店和网站对接如何做,济南网站建设联系小七单一职责原则#xff08;SRP#xff09;又称单一功能原则。它规定一个类应该只有一个发生变化的原因。所谓职责是指类变化的原因。如果一个类有多于一个的动机被改变#xff0c;那么这个类就具有多于一个的职责。而单一职责原则就是指一个类或者模块应该有且只有一个改变的原… 单一职责原则SRP又称单一功能原则。它规定一个类应该只有一个发生变化的原因。所谓职责是指类变化的原因。如果一个类有多于一个的动机被改变那么这个类就具有多于一个的职责。而单一职责原则就是指一个类或者模块应该有且只有一个改变的原因。
目录
一.定义
二.原理
类的单一职责原则
单一职责原则好处
三.实践 一.定义 每一个职责都是变化的一个轴线如果一个类有一个以上的职责这些职责就耦合在了一起——这会导致脆弱的设计。当一个职责发生变化时可能会影响其它的职责。另外多个职责耦合在一起会影响复用性。例如要实现逻辑和界面的分离。
二.原理 如果一个类承担的职责过多就等于把这些职责耦合在一起了。一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计当发生变化时设计会遭受到意想不到的破坏。而如果想要避免这种现象的发生就要尽可能的遵守单一职责原则。此原则的核心就是解耦和增强内聚性。
类的单一职责原则 一般一个对象可以分为属性和行为二部分所以在类的设计时我们一般把对象的属性抽象成一个BO(Business Object,业务对象)把对象的行为抽象成一个Biz(Business Logic业务逻辑)。
单一职责原则好处
降低类的复杂性每个类实现单一职责并且单一职责都有清楚明确的定义复杂性当然降低提高可读性类的复杂性降低了当然提高了可读性了。提高可维护性类的复杂性降低可读性好当然好维护。提高扩展性变更引起的风险降低变更是必不可少的如果接口的单一职责做的好一个接口修改只对相应的实现类有影响对其它的接口没有影响这对系统的扩展性维护性都是有好处的。
归纳弱点
职责多引起此类变化的原因也多。后续变更的风险就大。后续需求变更会造成职责的混乱类结构的不稳定。
三.实践 举个例子将一个女孩追到手有如下两种方式 方法一 public void ChaseGirl()
{SentLetter();DevelopFeeling();MakeVow;
}public void SentLetter()
{}public void DevelopFeeling()
{}public void MakeVow
{} 方法二 public void ChaseGirl()
{SentLetterAndDevelopFeeling();MakeVow;
}public void SentLetterAndDevelopFeeling()
{}public void MakeVow
{} 不难看出虽然底层的实现逻辑几乎相同但是方法二中将送情书and发展感情耦合在了一个类中违反了单一原则假设有的女孩对情书不屑一顾那么就要修改认识的方式——但此时也要修改发展感情的方法~这就是典型的耦合性高的开发~ 单一职责原则的重心不在于“一”而是如何拆分“一”每个设计师都知道软件应该解耦和分层但难的是何时分以及如何分——比如有的人就认为建立契机和发展感情应该是一个统一的过程~
因此引出解决的方法遵守单一职责原则将不同的职责封装到不同的类或模块中。 类改造改造后类的职责单一 原有违背单一职责原则的类如下 修改后如下 这种清晰的职责范围划分就是单一职责原则的最佳实践。符合单一职责原则的设计能使类具备高内聚性让单个模块变得简单易懂如此才能增强代码的可读性和可复用性。并提高系统的易维护性和易测试性。