【发布时间】:2015-08-02 13:17:48
【问题描述】:
我已经编写 OOP 程序快两年了。但是最近我发现我总是喜欢在我的 OOP 项目中使用太多的单例和静态方法。
例如,为了解耦代码,我想使用 MVC 或类似 3 层架构的东西。我通常使用模型来临时存储信息,例如用户的登录令牌或他或她的个人资料。我发现在大多数情况下,我只需要一个模型类的实例。 所以我几乎所有的模型都是用 Singleton 风格写的。
而且在业务逻辑层或控制器中,我几乎找不到使用多个实例调用同一个方法的情况,除了多线程的原因。这导致我的大部分 BLL 都是由静态方法或类构造的!
我知道这个问题很抽象,对于 StackOverflow 来说并不是一个好问题。但我自己对此感到非常困惑。我认为这种编码风格并不是真正的OOP风格,但是我找不到更好的方法来解决上面的这些逻辑问题。
【问题讨论】:
-
你听说过依赖注入吗?
-
也许我不应该告诉你我一直在编写一个一切都是静态的应用程序?
-
@Jamie 一切都好吗?你的意思是这只是关于优雅而不是效率的事情吗?
-
@MarkoTopolnik 我从一本设计模式书中读到了这些东西。我以为它不常用。你介意为我揭示它的本质吗:)
-
它不仅常用,而且是任何大型应用程序的精髓。这意味着没有静态工厂和实例化单例的显式代码。
标签: java c# objective-c oop