我是靠谱客的博主 无语烧鹅,最近开发中收集的这篇文章主要介绍二十三种设计模式中的六大原则(一) 单一职责原则,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

引言:本人这个设计模式课程的学习,也是看的别的讲师的课程来学习的,这个老师讲的设计模式的课程很不错。建议大家去听听。这里我只贴视频链接,不说是哪个老师和哪个培训机构,避免有打广告的嫌疑。

视频链接:https://www.bilibili.com/video/av57936239?from=search&seid=10749694492060434221

软件工程中,设计模式(designpattern)是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。这个术语是由埃里希·伽玛(ErichGamma)等人在1990年代从建筑设计领域引入到计算机科学的。

编写软件过程中,程序员面临着来自耦合性,内聚性以及可维护性,可扩展性,重 用性,灵活性等多方面的挑战,设计模式是为了让程序(软件),具有更好:

  1. 代码重用性(即:相同功能的代码,不用多次编写)
  2. 可读性(即:编程规范性,便于其他程序员的阅读和理解)
  3. 可扩展性(即:当需要增加新的功能时,非常的方便,称为可维护
  4. 可靠性(即:当我们增加新的功能后,对原来的功能没有影响)
  5. 使程序呈现高内聚,低耦合的特性

设计模式包含了面向对象的精髓,“懂了设计模式,你就懂了面向对象分析和设计 (OOA/D)的精要” 。设计模式是不依赖任何一种语言的,它是一种思想。

设计模式常用的七大原则有:

  1. 单一职责原则
  2. 接口隔离原则
  3. 依赖倒转(倒置)原则
  4. 里氏替换原则
  5. 开闭原则
  6. 迪米特法则

单一职责原则

单一职责,就是职责单一,拿一个类来说,即一个类应该只负责一项职责。如类A负责两个不同职责:职责1,职责2。当职责1需求变更而改变A时,可能造成职责2执行错误,所以需要将类A的粒度分解为A1,A2。举个例子:
拿机动车举例,Vehicle 类里面有一个提供机动车行驶的方法:driver

class Vehicle {
	public void driver(String vehicle) {
		System.out.println(vehicle + " 在公路上运行....");
	}
}

我们写main方法调用:

public static void main(String[] args) {
		// TODO Auto-generated method stub
		Vehicle vehicle = new Vehicle();
		vehicle.driver("摩托车");
		vehicle.driver("汽车");
		vehicle.driver("飞机");
	}

在这里插入图片描述
这里,摩托车和汽车都去调用这个driver方法,输出了在公路上行驶,那是没有错的。但是当飞机调用的时候,也输出同样的话,那明显是不对的。这个时候,就应该把原先的driver方法分离出来。分成两种职责:一种在公路上行驶,一种在天上飞:
这里实现方法级别的单一职责,如果是类级别的单一职责,那就新建一个类就行了。单一职责的代码比较简单,所以类级别的单一职责的代码就不贴出来了。

class Vehicle2 {
	public void driverrun(String vehicle) {
		//处理
		
		System.out.println(vehicle + " 在公路上运行....");
		
	}
	
	public void skyrun(String vehicle) {
		System.out.println(vehicle + " 在天空上运行....");
	}

}
public static void main(String[] args) {
		// TODO Auto-generated method stub
		Vehicle2 vehicle2  = new Vehicle2();
		vehicle2.driverrun("汽车");
		vehicle2.skyrun("飞机");
	}

在这里插入图片描述
这里虽然没有在类这个级别上遵守单一职责原则(如果在类级别上,就要新增一个类),但是在方法级别上,仍然是遵守单一职责。

单一职责原则注意事项和细节

  1. 降低类的复杂度,一个类只负责一项职责。
  2. 提高类的可读性,可维护性。
  3. 降低变更引起的风险 。
  4. 通常情况下,我们应当遵守单一职责原则,只有逻辑足够简单,才可以在代码级违反单一职责原则;只有类中方法数量足够少,可以在方法级别保持单一职责原则。

最后

以上就是无语烧鹅为你收集整理的二十三种设计模式中的六大原则(一) 单一职责原则的全部内容,希望文章能够帮你解决二十三种设计模式中的六大原则(一) 单一职责原则所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(32)

评论列表共有 0 条评论

立即
投稿
返回
顶部