Skip to content

Instantly share code, notes, and snippets.

protocol Refuelable {
func refuel()
}
protocol Drivable {
func drive()
}
struct Car: Refuelable, Drivable {}
struct Car: Refuelable, Drivable {}
struct Motorbike: Refuelable, Rideable {}
struct CleanerCar: Refuelable, Drivable, Cleaner {}
struct MechanicRobot: VehicleFinder, Maintainer {}
struct CleanerRobot: VehicleFinder, Cleaner {}
protocol Refuelable {
func refuel()
}
protocol Drivable {
func drive()
}
protocol Rideable {
func ride()
Car = Refuelable + Drivable;
Motorbike = Refuelable + Rideable;
CleanerCar = Refuelable + Driveable + Cleaner;
MechanicRobot = VehicleFinder + Maintainer;
CleanerRobot = VehicleFinder + Cleaner;
class Vehicle {
func refuel()
}
class Car: Vehicle {
func drive()
}
class CleanerCar: Car {
func cleanVehicle() //DUPLICATE
class GlobalObject {
func cleanVehicle()
}
class Vehicle: GlobalObject {
func refuel()
}
class Car: Vehicle {
func drive()
class Vehicle {
func refuel()
}
class Car: Vehicle {
func drive()
}
class Motorbike: Vehicle {
func ride()
class Robot {
func findVehicle()
}
class Mechanic: Robot {
func maintainVehicle()
}
class Cleaner: Robot {
func cleanVehicle()
class CleanerRobot {
func findVehicle()
func cleanVehicle()
}
class MechanicRobot {
func findVehicle()
func maintainVehicle()
}