metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2014-05-19 09:42 pm

Синглетоны

https://github.com/SparkViewEngine/spark/blob/master/src/Samples/DirectUsage/ConsoleTemplating/Services/MessageBuilder.cs

А вот насколько подобный код (статик _instance и его инициализация) является кошерным? Ну с interlocked все более-менее понятно, а вот собственно использование синглетонов вместо всяких модных IoC и тому подобного усложняющего все трэша?

[identity profile] aamonster.livejournal.com 2014-05-21 02:12 pm (UTC)(link)
А напомните - в C# static initialization order fiasco остался или как-то регламентирован порядок создания объектов?

[identity profile] berezovsky.livejournal.com 2014-05-21 02:22 pm (UTC)(link)
в стандарте не определён, по факту по тексту класса идёт

[identity profile] metaclass.livejournal.com 2014-05-21 02:50 pm (UTC)(link)
В одном классе хз, в разных - все как положено, по зависимостям.

[identity profile] viacheslav ivanov (from livejournal.com) 2014-05-23 04:02 pm (UTC)(link)
10.5.5.1 Static field initialization
The static field variable initializers of a class correspond to a sequence of assignments that are executed in the textual order in which they appear in the class declaration. .…

10.12 Static constructors
…It is possible to construct circular dependencies that allow static fields with variable initializers to be observed in their default value state.…

Выделение жирным моё.