深圳招聘网站有哪些,永康住房和城乡建设局网站,网站建设预算模板,屏蔽蜘蛛抓取 对网站有什么影响小谈设计模式#xff08;4#xff09;—单一职责原则 专栏介绍专栏地址专栏介绍 单一职责原则核心思想职责的划分单一变化原则高内聚性低耦合性核心总结 举例图书类#xff08;Book#xff09;用户类#xff08;User#xff09;图书管理类#xff08;Library#xff09… 小谈设计模式4—单一职责原则 专栏介绍专栏地址专栏介绍 单一职责原则核心思想职责的划分单一变化原则高内聚性低耦合性核心总结 举例图书类Book用户类User图书管理类Library分析 不遵守单一职责原则可能引发的问题类的职责不清晰类的修改影响范围过大难以重用和扩展 Java代码实现程序分析 总结 专栏介绍
专栏地址
link
专栏介绍
主要对目前市面上常见的23种设计模式进行逐一分析和总结希望有兴趣的小伙伴们可以看一下会持续更新的。希望各位可以监督我我们一起学习进步加油各位。
单一职责原则
单一职责原则Single Responsibility PrincipleSRP是设计模式中的一项原则它指出一个类或模块应该有且只有一个引起它变化的原因。换句话说一个类或模块应该只负责一项职责。
核心思想
职责的划分
将系统中的功能和行为划分为不同的职责每个类或模块只负责一种相关的职责。这样可以使得类的职责更加明确和清晰便于理解和维护。
单一变化原则
一个类或模块应该只有一个引起它变化的原因。如果一个类负责多种不相关的职责那么对其中一个职责的修改可能会影响到其他职责增加了代码的风险和复杂性。
高内聚性
类的内聚性指的是类内部的成员之间联系的紧密程度。遵守单一职责原则可以提高类的内聚性使得类内部的成员相互关联度高功能相关的代码放在同一个类中便于理解和维护。
低耦合性
类之间的耦合性指的是彼此之间的依赖程度。遵守单一职责原则可以降低类之间的耦合性使得类之间的依赖关系更加清晰和简单减少代码的依赖和影响范围。
核心总结
单一职责原则的核心思想是将一个类或模块的职责限定在一个很小的范围内使其只负责一种相关的功能或行为。这样可以保持类的高内聚性、低耦合性提高代码的可读性、可维护性和可扩展性。
举例
假设我们有一个图书管理系统其中包含了图书的借阅和归还功能。我们可以将这个系统划分为以下几个类
图书类Book
负责表示图书的属性和行为比如书名、作者、借阅状态等。
用户类User
负责表示用户的属性和行为比如用户名、密码、借阅图书等。
图书管理类Library
负责管理图书的借阅和归还功能。
分析
在这个例子中每个类都只负责一种相关的职责符合了单一职责原则。图书类只负责表示图书的属性和行为用户类只负责表示用户的属性和行为图书管理类只负责管理图书的借阅和归还功能。
不遵守单一职责原则可能引发的问题
类的职责不清晰
一个类负责了多种不相关的职责使得代码难以理解和维护。
类的修改影响范围过大
当一个类负责多种职责时对其中一个职责的修改可能会影响到其他职责增加了代码的风险和复杂性。
难以重用和扩展
一个类负责多种职责时可能会导致代码的耦合性增加使得难以重用和扩展。
Java代码实现
// 图书类
class Book {private String title;private String author;private int pageCount;// 构造函数、getter和setter方法省略// 图书的展示功能public void display() {System.out.println(Title: this.title);System.out.println(Author: this.author);System.out.println(Page Count: this.pageCount);}
}// 图书管理类
class Library {private ListBook books;// 构造函数、getter和setter方法省略// 图书的借阅功能public void borrowBook(Book book) {if (books.contains(book)) {books.remove(book);System.out.println(Borrowed book: book.getTitle());} else {System.out.println(Book not available for borrowing.);}}// 图书的归还功能public void returnBook(Book book) {books.add(book);System.out.println(Returned book: book.getTitle());}
}程序分析
我们定义了两个类Book和Library。Book类负责表示图书的属性和行为包括展示图书的功能Library类负责管理图书的借阅和归还功能。
通过将图书的展示功能和图书的借阅、归还功能分别放在不同的类中我们遵守了单一职责原则。每个类只负责一种相关的职责使得代码更加清晰和易于维护。
当我们需要使用这些功能时可以直接调用相应的方法
Book book new Book(Design Patterns, Gang of Four, 400);
book.display();Library library new Library();
library.borrowBook(book);
library.returnBook(book);这样我们可以很方便地使用图书的展示、借阅和归还功能而不会影响到其他相关的功能。
总结
总结来说单一职责原则是设计模式中的一项重要原则它要求将功能划分得更加细致使得每个类或模块 只负责一种相关的职责。遵守单一职责原则可以提高代码的可读性、可维护性和可扩展性。