oop 相关问题

面向对象编程是一种使用“对象”的编程范例:由数据字段和方法及其交互组成的数据结构。

接口注入实现编码设计模式

我正在使用接口依赖注入,但正在考虑如果一个接口发生任何变化,我如何使其可扩展。例如: 函数 updateStatistics(接口 myInterface) { 我的国际米兰...

回答 1 投票 0

为什么接口方法的实现不能返回应用了正确约束的泛型参数类型? (C#)

给出以下代码: 公共接口 IFoo {} 公共接口IBar { IFoo MyMethod(); } 公共抽象类 MyClass : IBar 其中 T : IFoo { 公共抽象 T MyMethod(...

回答 1 投票 0

有没有办法让基类要求派生类具有与派生的同一类的对象进行比较的函数?

我有一项家庭作业,该作业的一小部分要求一个抽象的父“电影”类,其中包含三个具体子类:“喜剧”、“戏剧”和“古典”。 每个子类永远不会

回答 1 投票 0

如何将单一职责原则应用于服务类

假设我们正在设计一个 UserServiceImpl 类,它执行 CRUD(创建、读取、更新和删除)操作。在我看来,创建、读取、更新和删除是类更改的四个原因。 D...

回答 4 投票 0

为结构提供通用子例程作为其包含过程

在 Fortran 中使用面向对象的结构时,我尝试将通用函数分配给结构,如下所示: !>================================================== 类型:: PropEq ...

回答 1 投票 0

为什么静态类只能有静态成员?

正如标题所示,我想了解为什么静态类只能有静态成员。我希望所有编程语言都是一样的。所以所有的解释都是一样的

回答 6 投票 0

如何在 dart 中将 mixin 制作为密封类

如何使 mixin 类“C”成为密封类不能扩展到其库之外? A 类用 C{} 扩展 B 类 B 级密封{} 混入类 C{} 我不希望 C 类被 cl 使用...

回答 1 投票 0

C# 泛型匹配抽象类类型时出现的问题

我试图运行这段代码,但是当我尝试检查时,存在一个问题:对象的类型与其抽象类类型不匹配 它在“if(处理程序是处理程序 我试图运行这段代码,但是当我尝试检查时,存在一个问题,即对象的类型与其抽象类类型不匹配 它位于“if (handler is Handler h)”这一行 void Main() { var requestHandler = new RequestHandler(); var result = requestHandler.Handle(new GetAge()); Console.WriteLine(result); } public interface IRequest<T> { } public class GetAge : IRequest<int> { } public interface IHandler {} public abstract class Handler<TRequest, TResponse> : IHandler where TRequest : IRequest<TResponse> { public TResponse Handle(IRequest<TResponse> request) { return Handle((TRequest)request); } protected abstract TResponse Handle(TRequest requst); } public class GetAgeHandler : Handler<GetAge, int> { protected override int Handle(GetAge request) { return 20; } } public class RequestHandler { public Dictionary<Type, IHandler> requestHandlers = new() { [typeof(GetAge)] = new GetAgeHandler() }; public T Handle<T>(IRequest<T> request) { var handler = requestHandlers[request.GetType()]; if (handler is Handler<IRequest<T>, T> h) { return h.Handle(request); } return default; } } 看起来应该可以,但似乎我做错了什么 简单来说,模式匹配失败是因为泛型类型默认是不变的。即使您有Handler<GetAge, int>,也不认为与Handler<IRequest<int>, int>兼容。如果泛型类型是协变或逆变,那么这是允许的,但在这种特定情况下,这是不可能的。 解决此问题的一种方法是定义 Handle 方法,如下所示: public TResponse Handle<TRequest, TResponse>(TRequest request) where TRequest : IRequest<TResponse> { var handler = requestHandlers[request.GetType()]; if (handler is Handler<TRequest, TResponse> h) { return h.Handle(request); } return default(TResponse); } 你会这样称呼它: var result = requestHandler.Handle<GetAge, int>(new GetAge());

回答 1 投票 0

如何在同一对象内的函数中使用对象类型作为参数?

也许这是不可能的,我需要重新规划我的方法,但很好奇我是否缺少正确的语法。我学会了如何在函数中声明参数的数据类型,并且我...

回答 1 投票 0

如何在Python中同一对象内的函数中使用对象类型作为参数

也许这是不可能的,我需要重新规划我的方法,但很好奇我是否缺少正确的语法。我学会了如何在函数中声明参数的数据类型,并且我...

回答 1 投票 0

PyQt5 窗口运行几秒钟后自动关闭 - “进程已完成,退出代码 -1073741819 (0xC0000005)”

我正在尝试使用 PyQt5 制作一个利用网络摄像头的桌面应用程序。我在 YouTube 上看到了一个视频,其中那个人使用线程来实现这一点。我根据我的用例修改了代码。修改...

回答 2 投票 0

如何根据属性动态地为类 __init__ 函数提供参数?

像 dataclasses 和 pydantic 这样的工具如何为它们创建的类创建 __init__() 函数? 我知道我可以使用这些工具,但我想学习如何使用 python 元编程来匹配...

回答 1 投票 0

创建类图并正确构建系统的作业

我在课堂上接到了一项作业(计算机科学) - 我需要为处理不同类型车辆的车库的系统设计一个类图。这个作业的重点是使用组合...

回答 1 投票 0

如何将子函数导入到同一个类中,而父函数使用父类中的函数?

我有两个名为Parent和Child(Parent)的类。我需要调用父类函数,该函数使用名为 fnfromchild 的子函数,子函数使用相同的子类函数...

回答 1 投票 0

将 Nullable<T> 传递到接受 T 的泛型方法的行为?

我想知道将 Nullable 类型传递给接受 T 的泛型方法的行为是什么? (另一种 Nullable 类型)。这是有问题的代码: 整数?我的可为空参数...

回答 1 投票 0

更新.NET项目依赖项

我需要更新项目中的一些.NET 程序集。 我检查了反编译的代码,发现新版本的汇编中的一种方法具有耗时的逻辑。 例如,程序集 X.1 有一些

回答 1 投票 0

在 Python 中实现抽象属性

在 Python 中处理抽象属性的最好、最 Pythonic 的方法是什么?如果我想实现一个混合了抽象属性和具体方法的基类,我可以这样做......

回答 1 投票 0

Python 推断类层次结构

我有 C# 背景,具有相当扎实的 OOP 技能。在学习任何 OOP 语言时,我通常会参考曾经被问到的一个旧的 Smalltalk 面试问题。 如何制作石头、纸、

回答 1 投票 0

Java泛型而不是典型情况下的缩小

我对以下案例有疑问。我有家庭类动物,还有两个儿童类狗和猫。狗有 bark() 方法,猫有 meow() 方法。在主课上我有列表...

回答 1 投票 0

抽象与封装

这样说是否正确 抽象是通过抽象类实现的,抽象类只是继承抽象类的类的蓝图。所以抽象基本上不仅仅是

oop
回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.