Много подобен на Singleton design pattern, с разликата че при Singleton имаме използване само на един обект от клас, а тук имаме много обекти от даден клас но използват една и съща, споделена информация, което се постига с използването на static class properties.
Демек, данновата им част е една, обща, което значи, че пропъртитата трябва да са статични.
The Monostate
pattern is usually referred to as syntactic sugar over the Singleton
pattern or as a conceptual Singleton
.
This is accomplished mostly by using static
data members.
One of the most important feature is that it’s absolutely transparent for the users, that are completely unaware they are working with a Monostate
. Users can create as many instances of a Monostate
as they want and any instance is good as another to access the data.
За разлика от Singleton, при който имаме само един обект от даден клас, и данните (пропъртитата) му са капсулирани само в него, тук имаме много обекти от даденият клас, но използват едни и същи статични данни (пропъртита) споделено.
Демек, класът е един, неговите обекти са много, просто променяйки едно static property, тази промяна важи за всички обекти на даденият клас.