首页 > 其他分享 >单一原则

单一原则

时间:2024-06-11 14:47:05浏览次数:17  
标签:run String 原则 void 单一 class vehicle public

设计模式
设计模式由埃里希·伽玛提出的,原則是为了解决软件的 : 耦合性、内聚性、可维护性、可扩展性、重用性、灵活性
七大原则
单一职责原则
对类来说,即一个类只应该负责一项职责。

​

public class Demo01 {
   public static void main(String[] args) {
       Vehicle vehicle = new Vehicle();
       vehicle.run("摩托");
       vehicle.run("飞机");
  }
}


/*交通工具类
方式一:在方式1中的方法,违反了单一职责
      分解成不同的类即可
* */


class Vehicle{
   public void run(String vehicle){
       System.out.println(vehicle+"在公路上运行……");
  }
}
package Singleresponsibility;
​
public class Demo02 {
   public static void main(String[] args) {
       RoadVehicle roadVehicle = new RoadVehicle();
       roadVehicle.run("car");
       AirVehicle airVehicle = new AirVehicle();
       airVehicle.run("fly");
       WaterVehicle waterVehicle = new WaterVehicle();
       waterVehicle.run("boss");
  }
}
//方案二遵守原则,但改动很大
//解决方法修改vehicle类
class RoadVehicle{
   public void run(String vehicle){
       System.out.println(vehicle+"公路运行");
  }
}
class AirVehicle{
   public void run(String vehicle){
       System.out.println(vehicle+"天空运行");
  }
}
class WaterVehicle{
   public void run(String vehicle){
       System.out.println(vehicle+"水中运行");
  }
}
package Singleresponsibility;
​
public class Demo02 {
   public static void main(String[] args) {
       RoadVehicle roadVehicle = new RoadVehicle();
       roadVehicle.run("car");
       AirVehicle airVehicle = new AirVehicle();
       airVehicle.run("fly");
       WaterVehicle waterVehicle = new WaterVehicle();
       waterVehicle.run("boss");
  }
}
//方案二遵守原则,但改动很大对代码影响大
//解决方法   修改只vehicle类
class RoadVehicle{
   public void run(String vehicle){
       System.out.println(vehicle+"公路运行");
  }
}
class AirVehicle{
   public void run(String vehicle){
       System.out.println(vehicle+"天空运行");
  }
}
class WaterVehicle{
   public void run(String vehicle){
       System.out.println(vehicle+"水中运行");
  }```


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

标签:run,String,原则,void,单一,class,vehicle,public
From: https://www.cnblogs.com/jiangdi135792/p/18241719

相关文章

  • 芯片验证分享2 —— 验证七大原则
    大家好,我是谷公子,上篇博客和大家分享了几个验证中比较重要的名词,今天来讲下芯片验证中需要遵循的七大原则。以下这些原则不分先后,在验证中同等重要。视频的链接如下:芯片验证分享2——验证七大原则......
  • 设计模式-六大原则
    概述设计模式体现的是软件设计的思想,而不是软件技术,它重在使用接口与抽象类来解决各种问题。在使用这些设计模式时,应该首先遵守六大原则。原则含义具体方法开闭原则对扩展开放,对修改关闭多使用抽象类和接口里氏代换原则基类可以被子类替换使用抽象类继承,不使用具体类继承......
  • vue3多个表单一起校验
    当定义了多个表单但是保存时需要同时校验的时候可以这样做<template><el-form:model="userForm1"label-width="auto"ref="userFormRef1"></el-form><el-form:model="userForm2"label-width="auto......
  • 8.11 矢量图层线要素单一符号使用五(标记线)
    文章目录前言标记线(Markerline)QGis设置线符号为标记线(Markerline)二次开发代码实现标记线(Markerline)总结前言本章介绍矢量图层线要素单一符号中标记线(Markerline)的使用说明:文章中的示例代码均来自开源项目qgis_cpp_api_apps标记线(Markerline)在线条特征上绘制......
  • 2.面向对象设计原则
    1.概述对于面向对象软件系统的设计而言,在支持可维护性的同时,提高系统的可复用性是一个至关重要的问题,如何同时提高一个软件系统的可维护性和可复用性是面向对象设计需要解决的核心问题之一。在面向对象设计中,可维护性的复用是以设计原则为基础的。每一个原则都蕴含一些面向对象......
  • 里氏替换原则经典反例:正方形不是长方形
    里氏替换原则指出:“继承必须确保超类所拥有的性质在子类中仍然成立”,在程序中的表现就是某个接口能接受超类对象为参数,那么它也必须应该能接受子类对象为参数,且程序不会出现异常。也就是说子类对象应该能够替换掉超类对象,而程序的行为不会改变。最经典的用于说明里氏替换原......
  • 从C++示例理解开闭原则
    开闭原则要求我们在编写代码时,尽量不去修改原先的代码,当出现新的业务需求时,应该通过增加新代码的形式扩展业务而不是对原代码进行修改。假如我们现在有一批产品,每个产品都具有颜色和大小,产品其定义如下:enumclassColor{Red,Green,Blue};enumclassSize{Small,M......
  • QT通过qss/css修改单一控件样式
    通过.ui文件创建的界面,控件的QObjectName会自动添加,如果是通过.cpp和.h文件创建的控件需要加这句话open_dir_btn->setObjectName("open_dir_btn");,为按钮open_dir_btn添加设置ID。QTCreator设计模式中添加了一个按钮,它的objectName是自动添加的:只修改单个按钮的样式:QPushButt......
  • C++设计模式的原则
    1、依赖倒置原则(DIP)·高层模块(稳定)不应该依赖于低层模块(变化),二者都应该依赖于抽象稳定)。·抽象(稳定)不应该依赖于实现细节(变化),实现细节应该依赖于抽象(稳定)。2、开放封闭原则(OCP)·对扩展开放,对更改封闭。·类模块应该是可扩展的,但是不可修改。3、单一职责原......
  • 边缘计算|Hadoop——边缘计算,有没有对应的软件?例如数据中心或云计算环境进行数据处理
    边缘计算确实没有直接对应于Hadoop这样的单一软件框架,因为边缘计算更多的是一个概念或技术架构,它涵盖了在网络的边缘(即设备或数据源附近)进行数据处理和计算的能力。然而,这并不意味着边缘计算没有相应的软件支持或解决方案。在边缘计算环境中,通常会使用各种软件、工具和框架来支持......