34得票6回答
抽象工厂、工厂方法、建造者模式。

这个问题可能看起来像是重复的,但请耐心等待 - 我保证我已经阅读了相关的帖子(以及GOF书籍)。 在阅读了所有内容后,我仍然不清楚何时使用抽象工厂、工厂方法或构建器。我相信,在看到一个可以明显通过某种模式解决问题的简单例子之后,我会最终明白何时使用 构建器 而不是使用 抽象工厂。 你能提...

14得票1回答
使用Ninject进行依赖注入,结合MVC 3并使用服务定位器模式

自从我在另一个stackoverflow问题的答案中读到一位用户说过“如果你正在调用服务定位器,那么你做错了。”,这件事情一直困扰着我(确切的问题现在我想不起来了)。 那是一个声望很高的用户(我想是在十万级别),所以我认为这个人可能知道他们在说什么。自从我第一次学习DI并且知道它与单元测试及...

12得票3回答
抽象工厂模式与桥接模式对比

我刚学习了桥接模式及其意图:将抽象与其实现解耦,以便两者可以独立地变化。 但是为什么不能只用一个抽象工厂来完成同样的事情呢? 我知道抽象工厂可以创建特定的桥接,但我的问题涉及使用抽象工厂而不是桥接模式来解耦抽象和实现。 你能否请解释一下抽象工厂和桥接模式之间的真实区别呢?

12得票1回答
通过 DI 容器注入抽象工厂进行工作

我对依赖注入在一个具体的例子中的实现感到困惑。 假设我们有一个SomeClass类,它依赖于类型为IClassX的对象。public class SomeClass { public SomeClass(IClassX dependency){...} } 根据运行时参数N的不同,...

11得票4回答
为什么抽象工厂使用抽象类而不是接口?

我正在学习设计模式,书中第一个例子是关于抽象工厂的。 我已经在VS中编写了练习,一切看起来都很好,但有一个问题让我感到疑惑。 在书中,工厂类是这样实现的:public abstract class AbstractVehicleFactory { public abstract IB...

9得票5回答
使用静态方法实现的工厂

我曾经看到过使用静态方法实现工厂模式的方法。大致如下: public class MyFactory { public static Product1 createProduct1() {} public static Product2 createProduct2() {}...

9得票1回答
如何测试使用ContentProvider的Activity而不影响生产数据库?

问题 我有两个 Android 类需要测试: CommentContentProvider,它扩展了ContentProvider 并由 SQLiteDatabase 支持。 CommentActivity,它扩展了Activity 并通过 ContentResolver 间接访问 Co...

9得票3回答
为什么工厂方法是一种类模式,而抽象工厂是一种对象模式?

从GOF书中: 类模式处理类与其子类之间的关系。这些关系是通过继承建立的,因此它们在编译时是静态固定的。 对象模式处理对象关系,这些关系可以在运行时更改,更加动态。几乎所有模式都在一定程度上使用继承。因此,唯一标记为“类模式”的模式是那些专注于类关系的模式。 为什么工厂方法是一个类模式...

8得票3回答
Castle Windsor Typed Factory Facility 的等价物

是否有其他.NET IoC容器提供与Castle Windsor中的类型工厂设施相同的功能? 例如,如果我在WPF应用程序中使用抽象工厂模式: public class MyViewModel { private IAnotherViewModelFactory factory; ...

8得票5回答
一个带参数的抽象工厂如何进行单元测试

给定一个抽象工厂实现: public class FooFactory : IFooFactory { public IFoo Create(object param1, object param2) { return new Foo(param1, param2); ...