网站设计教程网站,dw网页制作教程div视频教程,主流网站开发技术框架,湖北建设招标网 官方网站我目前正在阅读有关Java最佳实践的内容,我发现根据this book,我们必须支持非静态的静态类.我记得在C#最佳实践中,我们必须根据Dennis Doomen的C#3.0,4.0和5.0编码指南来避免这种情况#xff1a;AV1008 – Avoid static classesWith the exception of extension method contain…我目前正在阅读有关Java最佳实践的内容,我发现根据this book,我们必须支持非静态的静态类.我记得在C#最佳实践中,我们必须根据Dennis Doomen的C#3.0,4.0和5.0编码指南来避免这种情况AV1008 – Avoid static classesWith the exception of extension method containers static classes very often lead to badly designed code. They are also very difficult,if not impossible,to test in isolation unless you’re willing to use some very hacky tools. Note If you really need that static class,mark it as static so that the compiler can prevent instance members and instantiating your class. This relieves you of creating an explicit private constructor.我在C# answer和Java answer中找到了这两个用于避免静态类的时间,但仅仅是出于好奇 – C#和Java都是OOP语言,为什么它与最佳实践完全不同呢更新我不能从Java书中复制这么多页面,但底线是If you declare a member class that does not require access to anenclosinginstance,always put the static modifier in its declaration,making it a staticrather than a nonstatic member class. If you omit this modifier,each instance willhave an extraneous reference to its enclosing instance. Storing this reference coststime and space,and can result in the enclosing instance being retained when itwould otherwise be eligible for garbage collection (Item 6). And should you everneed to allocate an instance without an enclosing instance,you’ll be unable to doso,as nonstatic member class instances are required to have an enclosing instance.A common use of private static member classes is to represent components ofthe object represented by their enclosing class.它只是关于性能吗请注意,这个问题更多的是关于静态类和OOP,而不是Java和C#之间的差异.