freddo@feddit.nu to Programmer Humor@programming.devEnglish · 7 days agoOOP at home:feddit.nuimagemessage-square76fedilinkarrow-up1314arrow-down114
arrow-up1300arrow-down1imageOOP at home:feddit.nufreddo@feddit.nu to Programmer Humor@programming.devEnglish · 7 days agomessage-square76fedilink
minus-squarered_tomato@lemmy.worldlinkfedilinkarrow-up94·edit-27 days agoHold on, I’m in the middle of drawing an inheritance graph so I know how Dog is related to AircraftCarrier.
minus-squareblackn1ght@feddit.uklinkfedilinkEnglisharrow-up68·edit-27 days agopublic interface ICanTravelThroughTheAir { } public class Flea : ICanTravelThroughTheAir { } public class AircraftCarrier { private readonly List<ICanTravelThroughTheAir> _aircraft = new(); public void AddAircraft(ICanTravelThroughTheAir flyingThing) { _aircraft.Add(flyingThing); } } public class Dog : AircraftCarrier { public void Woof() { Console.WriteLine("Bitch I'm an aircraft carrier!"); } } public static class Program { public int Main(string[] args) { var dog = new Dog(); for (var i = 0; i < 10000; i++) { dog.AddAircraft(new Flea()); } dog.Woof(); } }
minus-squareValmond@lemmy.dbzer0.comlinkfedilinkarrow-up10·7 days agoNot even unnecessarily templated, B- at best
minus-squareZILtoid1991@lemmy.worldlinkfedilinkarrow-up3·edit-26 days agoNow someone needs to make it an entity component system! Attempt 1: public struct Entity { bool isDog : 1; bool isAircraftCarrier : 1; bool isFlea : 1; bool canFlyInAir : 1; ubyte opt_numOfAircrafts : 4; int entityID; int opt_parentID; static Entity createDog(int entityID) { Entity result; result.isDog = true; result.entityID = entityID; return result; } static Entity createFlea(int entityID) { Entity result; result.isFlea = true; result.canFlyInAir = true; result.entityID = entityID; return result; } void addAirCraft(ref Entity aircraft) { if (aircraft.canFlyInAir && this.isAircraftCarrier) { aircraft.opt_parentID = this.entityID; this.opt_numOfAircrafts++; } } void woof() { if (isDog) { if (isAircraftCarrier) writeln("I'm a motherfucking aircraft carrier"); else writeln("Woof!"); } } } void main() { Entity dog = Entity.createDog(1); Entity flea = Entity.createFlea(2); dog.woof(); dog.isAircraftCarrier = true; dog.addAirCraft(flea); dog.woof(); }
minus-squareWhyJiffie@sh.itjust.workslinkfedilinkEnglisharrow-up1·edit-25 days agobut but why would you do that?
Hold on, I’m in the middle of drawing an inheritance graph so I know how Dog is related to AircraftCarrier.
public interface ICanTravelThroughTheAir { } public class Flea : ICanTravelThroughTheAir { } public class AircraftCarrier { private readonly List<ICanTravelThroughTheAir> _aircraft = new(); public void AddAircraft(ICanTravelThroughTheAir flyingThing) { _aircraft.Add(flyingThing); } } public class Dog : AircraftCarrier { public void Woof() { Console.WriteLine("Bitch I'm an aircraft carrier!"); } } public static class Program { public int Main(string[] args) { var dog = new Dog(); for (var i = 0; i < 10000; i++) { dog.AddAircraft(new Flea()); } dog.Woof(); } }Not even unnecessarily templated, B- at best
Now someone needs to make it an entity component system!
Attempt 1:
but but why would you do that?
You forgot the component part.