From cca025498432f408d14c6983c53f6d91371adf38 Mon Sep 17 00:00:00 2001 From: Cindy Zhang Date: Fri, 30 Dec 2016 09:32:28 -0800 Subject: [PATCH] implement singleton design pattern --- src/org/usfirst/frc/team3501/robot/OI.java | 7 +++++++ src/org/usfirst/frc/team3501/robot/Robot.java | 16 +++++++++++----- .../team3501/robot/subsystems/DriveTrain.java | 9 ++++++++- 3 files changed, 26 insertions(+), 6 deletions(-) diff --git a/src/org/usfirst/frc/team3501/robot/OI.java b/src/org/usfirst/frc/team3501/robot/OI.java index 997be71..211c399 100644 --- a/src/org/usfirst/frc/team3501/robot/OI.java +++ b/src/org/usfirst/frc/team3501/robot/OI.java @@ -3,6 +3,7 @@ package org.usfirst.frc.team3501.robot; import edu.wpi.first.wpilibj.Joystick; public class OI { + private static OI oi; public static Joystick leftJoystick; public static Joystick rightJoystick; @@ -11,4 +12,10 @@ public class OI { rightJoystick = new Joystick(Constants.OI.RIGHT_STICK_PORT); } + + public static OI getOI(){ + if(oi == null) + oi = new OI(); + return oi; + } } diff --git a/src/org/usfirst/frc/team3501/robot/Robot.java b/src/org/usfirst/frc/team3501/robot/Robot.java index 36ca70b..3ccbadf 100644 --- a/src/org/usfirst/frc/team3501/robot/Robot.java +++ b/src/org/usfirst/frc/team3501/robot/Robot.java @@ -1,17 +1,23 @@ package org.usfirst.frc.team3501.robot; -import org.usfirst.frc.team3501.robot.Constants.DriveTrain; +import org.usfirst.frc.team3501.robot.subsystems.DriveTrain; import edu.wpi.first.wpilibj.IterativeRobot; import edu.wpi.first.wpilibj.command.Scheduler; public class Robot extends IterativeRobot { - public static OI oi; - public static DriveTrain driveTrain; @Override public void robotInit() { - driveTrain = new DriveTrain(); - oi = new OI(); + DriveTrain.getDriveTrain(); + OI.getOI(); + } + + public static DriveTrain getDriveTrain(){ + return DriveTrain.getDriveTrain(); + } + + public static OI getOI(){ + return OI.getOI(); } @Override diff --git a/src/org/usfirst/frc/team3501/robot/subsystems/DriveTrain.java b/src/org/usfirst/frc/team3501/robot/subsystems/DriveTrain.java index 54b0ce0..6175630 100644 --- a/src/org/usfirst/frc/team3501/robot/subsystems/DriveTrain.java +++ b/src/org/usfirst/frc/team3501/robot/subsystems/DriveTrain.java @@ -5,14 +5,21 @@ import edu.wpi.first.wpilibj.CANTalon; import edu.wpi.first.wpilibj.command.Subsystem; public class DriveTrain extends Subsystem { + private static DriveTrain driveTrain; private CANTalon frontLeft, frontRight, rearLeft, rearRight; - public DriveTrain() { + private DriveTrain() { frontLeft = new CANTalon(Constants.DriveTrain.FRONT_LEFT); frontRight = new CANTalon(Constants.DriveTrain.FRONT_RIGHT); rearLeft = new CANTalon(Constants.DriveTrain.REAR_LEFT); rearRight = new CANTalon(Constants.DriveTrain.REAR_RIGHT); } + + public static DriveTrain getDriveTrain(){ + if(driveTrain == null) + driveTrain = new DriveTrain(); + return driveTrain; + } @Override protected void initDefaultCommand() { -- 2.30.2