Untitled
unknown
java
2 years ago
3.2 kB
4
Indexable
import java.util.ArrayList; import java.util.List; // Abstract base class for cloud resources abstract class CloudResource { protected String resourceID; protected String resourceType; protected String[] tags; protected String creationTime; public CloudResource(String resourceID, String resourceType) { this.resourceID = resourceID; this.resourceType = resourceType; } // Default deploy behavior public void deploy() { System.out.println("Deploying " + resourceType); } // Default terminate behavior public void terminate() { System.out.println("Terminating " + resourceType); } public void updateConfiguration() { // Default config update } } // EC2 instance resource class EC2Instance extends CloudResource { private String instanceType; public EC2Instance(String resourceID, String instanceType) { super(resourceID, "EC2"); this.instanceType = instanceType; } // Overridden deploy for EC2 @Override public void deploy() { System.out.println("Launching EC2 instance"); } // Overridden terminate for EC2 @Override public void terminate() { System.out.println("Shutting down EC2 instance"); } } // S3 Bucket resource class S3Bucket extends CloudResource { private String bucketName; public S3Bucket(String resourceID, String bucketName) { super(resourceID, "S3"); this.bucketName = bucketName; } // Overridden deploy for S3 @Override public void deploy() { System.out.println("Creating S3 bucket"); } // Overridden terminate for S3 @Override public void terminate() { System.out.println("Deleting S3 bucket"); } } // Manager for cloud deployments class DeploymentManager { private List<CloudResource> resourcesList; public DeploymentManager() { resourcesList = new ArrayList<>(); } // Add a cloud resource public void addResource(CloudResource resource) { resourcesList.add(resource); } // Remove a cloud resource public void removeResource(CloudResource resource) { resourcesList.remove(resource); } // Deploy all resources public void deployAllResources() { for (CloudResource resource : resourcesList) { resource.deploy(); } } // Terminate all resources public void terminateAllResources() { for (CloudResource resource : resourcesList) { resource.terminate(); } } } // Entry point for the system public class CloudDeploymentSystem { public static void main(String[] args) { EC2Instance instance = new EC2Instance("i-12345", "t2.micro"); S3Bucket bucket = new S3Bucket("s3-67890", "myBucket"); DeploymentManager manager = new DeploymentManager(); manager.addResource(instance); manager.addResource(bucket); manager.deployAllResources(); manager.terminateAllResources(); } }
Editor is loading...