我有一个像这样的抽象工厂。
public abstract class AbstractFactory
{
public abstract ISyncService GetSyncService(EntityType entityType);
}
我有这样的具体实施。
public class SyncFactory : AbstractFactory
{
private readonly IOperatorRepository _operatorRepository;
public SyncFactory( IOperatorRepository operatorR
我正在看本教程,但不太理解如何创建一个工厂,该工厂可以为我提供接口的单独实现。
public class IJob {
...
}
public class JobImpl1 : IJob {
...
}
public class JobImpl2 : IJob {
...
}
using (IKernel kernel = new StandardKernel()) {
kernel.Bind<IJob>().To<JobImpl2>();
var job = kernel.Get<IJob>();
}
我的目标是创建
我想让我的单元测试setUp函数从重复大量的模型创建行(比如1)创建用户2)到这个用户等等。为了做到这一点,我做了一个简单的虚拟对象工厂,但是我可能犯了一些错误,或者只是误解了一些东西。这里有一个工厂(dummy_data只是一堆垃圾):
from abc import ABC
from users.models import User
from employees.models import Employee
from .dummy_data import(
user_data,
employee_data,
)
class DummyObjectFactory(ABC):
我知道以前也有人问过类似的问题。在过去的几天里,我读了很多关于这个的文章,我想我现在可以理解在设计和代码流方面的不同了。困扰我的是,这两种模式似乎都可以解决同一组问题,而没有真正的理由选择其中一种。当我试图自己解决这个问题时,我尝试实现一个小示例(从我在"Head First: Design“一书中找到的一个示例开始)。在这个例子中,我尝试了两次解决相同的问题:一次只使用"Factory方法模式“,另一次使用”抽象工厂模式“。我会给你看代码,然后我会做一些评论和问题。
公共接口和类
public interface IDough { }
public interface ISa
我要对这个方法进行单元测试:
public class DPService {
public DPModel saveTreeRecursively(DPDTO dpDTO) {
DPModel dpModel = new DPModel(dpDTO.getDPKey(), dpDTO.getName());
DPModel savedDpModel = dpDAO.save(dpModel);
Long dpId = savedDPModel.getDpId();
// after some operations
我有两个手术要做。一个用于Air transport,另一个用于Road transport。这两个过程都会处理一些message。
这是Interface
public interface IProcess
{
void Process(string message);
}
以下是我的Road transport实现
public class RoadTransport: IProcess
{
public void Process(string msg)
{
// do s
我已经安装了一个android应用程序,用于使用Hilt进行依赖注入,并且希望对我的片段进行单元测试。
目前,我正在使用以下方法创建视图模型:
private val viewModel: ExampleViewModel by viewModels()
我正在创建用于使用代码进行测试的片段。
我需要用一个模拟替换这个ExampleViewModel,我该怎么做呢?
我有一个接口:
public interface MyInterface{}
和两个实现:
public class Imp1 implements MyInterface {}
public class Imp2 implements MyInterface {}
我的程序是CLI。我希望有一些类,它将接受命令行args,解析它并创建正确实现的新实例:
public class MyFactory {
public MyInterface getMyInterface(CommandLineArgs args) {
....
}
}
这里有图案吗?我不确定抽象的
头第一设计模式将简单工厂描述为
public class SimplePizzaFactory {
public Pizza createPizza(String type) {
Pizza pizza = null;
if (type.equals(“cheese”)) {
pizza = new CheesePizza();
} else if (type.equals(“pepperoni”)) {
pizza = new PepperoniPizza();
我正在学习设计模式,书中的第一个例子是关于抽象工厂的。我在VS中建立了这个练习,一切看起来都很好,但是有一个问题我想知道。
在本书中,工厂类的实现方式如下:
public abstract class AbstractVehicleFactory
{
public abstract IBody CreateBody();
public abstract IChassis CreateChassis();
public abstract IGlassware CreateGlassware();
}
在完成练习之后,我注意到上面的类可以用以下代码替换:
public in
我有一个工厂方法,如下所示
public class AutomobileFactory
{
Dictionary<string, ICar> internalFactory = new Dictionary<string, ICar>();
public AutomobileFactory()
{
internalFactory.Add("fiat",new Fiat());
internalFactory.Add("ford", new Ford());
}
p
我有一堆存储库类,我想使用Visual Studio2008对它们进行单元测试。它们实现了以下接口:
public interface IRepository<TEntity> where TEntity : IEntity
{
/// <summary>
/// Get entity by ID
/// </summary>
/// <param name="id">The ID</param>
/// <returns></returns>
T
Java noob这里,我有一个程序,我想迭代已经添加到另一个文件中的插件的数量,然后只要它是一个前缀和后缀计算器,我就想检查堆栈中的符号是否为'+‘,所以找到从Operator类扩展的add类,然后调用doAction(stack.pop(),stack.pop()),这是因为我想添加无限的方法来计算更多的符号,我试图使用反射,但我不知道如何在名称之间循环,让程序选择正确的方法
public class Operator {
public int doAction(int op1, int op2) {
return 0;
}
public
我有两个类A和B。目前,B是在A内部构造的,因为我想在单元测试中验证A调用B的方法是否正确,所以我希望将B注入到A中,以启用模拟。
问题是:在构造时,B需要A的一个字段作为构造函数参数。这意味着,如果我注入B,从而将它的构造移出A,我也必须将该字段的结构移出A。
这里最优雅的解决方案是什么?我希望我能正确地解释这个问题。如果没有,请随时提出任何问题。
试图解释代码片段的问题:
现在的情况是:
// constructor of class A. b_ is being constructed. field_of_a_ is initialized.
A::A() : b_{field_of_a
我试图为我的ASP.NET MVC代码编写一些单元测试,但我遇到了障碍。
我有实体部分类(在业务类库程序集中),需要确定调用动作方法和控制器的URL。为了做到这一点,我找到了这段代码片段,它很好地工作--但是唉,这使用了HttpContext.Current,从而阻止了我编写任何单元测试:
public string NavigateUrl
{
get
{
HttpContextWrapper httpContextWrapper = new HttpContextWrapper(HttpContext.Current);
U
假设我在C#中有以下代码:
public class AppleTree
{
public AppleTree()
{
}
public string GetApple
{
return new Fruit("Apple").ToString();
}
}
其中,Fruit是一个没有接口的第三方类。
我想为AppleTree类创建一个单元测试,但我不想运行Fruit类。相反,我想注入Fruit类,这样我就可以在测试中模拟它。
我该怎么做呢?我可以创建一个创建苹果的工厂,然后向该工厂添加一个接口,如下所示:
public clas
假设在C#中,我有一个名为A的类
public class A : IInterfaceA
{
[Dependency]
B _b;
}
在B类中,我有这样一个构造函数:
public class B
{
...
public B(string someParam) { ... }
...
}
现在,我把A级注册如下:
_unityContainer.RegisterType<IInterfaceA, A>("RegistrationA");
为了解决接口问题,我会:
_unityContainer.Resolve<IInterfaceA&
我正在为一个程序制作一个解决方案,该程序使用不同类型的部件(C#)构建机器人。在本例中,我有两种共享某些属性的类型,并且这两种类型的Part都继承自一个抽象类part。
到目前为止,我是从我的界面窗口中的实际按钮代码调用new的,它是这样的。
if (type == acuatic)
Part pieceA = new AcuaticPart(type,name,price,maxDepth);
else
Part pieceB = new TerrestrialPart(type,name,price,terrain,maxTemp);
我知道这是一个完全错误的设计,我应该实现一个工
我正在尝试学习创造性的设计模式,我想我现在已经理解了Factory Method模式。但是在迁移到抽象工厂模式时,我找不到它的用处。我知道我错过了一些东西,但不知道在哪里。
在抽象工厂模式中,我们将有一个抽象工厂,而具体工厂将返回实例。假设我们正在处理汽车的创造。我们将有一个抽象工厂,比如
public interface CarFactory{
public Car getCar();
}
我们的混凝土工厂将会是这样的
public class AudiFactory{
public Car getCar(){
return new Audi();
}