.NET Standard roguelike library in C#. Features many algorithms and data structures pertinent to roguelike/2D game developers, specifically designed to be minimally intrusive upon the developer's architecture.
MIT License
494
stars
31
forks
source link
Add Alternate Implementation or Flag for MessageBus that Allows Weak References #247
Although it does not fit all use cases, it can be useful to have either a flag for the existing implementation, or a separate message bus implementation that uses weak references for subscribers could be useful. This would trade the bus being an owner for the subscribers being an owner of would allow subscribers to arbitrarily disappear and not have to be removed from the bus to be GCed.
It disallows:
// object would be GCed since no strong reference is being maintained
bus.RegisterSubscriber(new SubscriberObject());
However can be useful for select cases, provided:
It is not a default
The method of activating/deactivating the feature makes it clear what the ramifications are
Although it does not fit all use cases, it can be useful to have either a flag for the existing implementation, or a separate message bus implementation that uses weak references for subscribers could be useful. This would trade the bus being an owner for the subscribers being an owner of would allow subscribers to arbitrarily disappear and not have to be removed from the bus to be GCed.
It disallows:
However can be useful for select cases, provided: