我想修改实现特定接口的类实例的行为。修改由修改器对象执行。最终,原始类实例仍应保留其所有其他行为。设置如下:
接口和实现类如下所示:
interface IFuncA
{
double DoSomethingA();
}
interface IFuncB
{
int DoSomethingB(string str);
}
class ImplementsAB : IFuncA, IFuncB
{
void DoSomethingA() => 3.14;
int DoSomethingB(string str) => str.Length;
}
有一些修改器类根据下面的psuedoCode工作。这是我想不明白的部分。
// Unknown how to make this work.
class ModifiesFuncB
{
int Multiplier;
int ModifiedDoSomethingB(string str) => Multiplier * str.Length;
ModifiesFuncB(int multiplier)
{
Multiplier = multiplier;
}
IFuncB Modify(IFuncB funcB)
{
// This is pseudo-code.
funcB.DoSomethingB = ModifiedDoSomethingB;
}
}
下面是一些示例代码,使用修饰符修改实现IFUNCB
接口的对象上的行为。
ImplementsAB myObj = new ImplementsAB();
ModifiesFuncB modifier = new ModifiesFuncB(2);
Console.WriteLine(myObj.DoSomethingA()); // Outputs 3.14
Console.WriteLine(myObj.DoSomethingB("hello")); // Outputs 5
myObj = modifier.Modify(myObj);
Console.WriteLine(myObj.DoSomethingA()); // Outputs 3.14
Console.WriteLine(myObj.DoSomethingB("hello")); // Outputs 10
是否有解决方案、软件设计模式或通用方法来完成此操作?这可能是一个完全错误的方式,但示范我应该做的将是一个很大的帮助。提前道谢!
您可能正在寻找
Decorator模式-“动态地将附加的resposities附加到一个对象。Decorator提供了一个灵活的替代子类化来扩展功能。”(Gamma,Erich,等人,“可重用的面向对象软件的元素”,《设计模式》,马萨诸塞州:Addison-Wesley Publishing Company(1995))。
有些接口没有被开放,但是也想要通过网关来访问,SOP提供一个固定的请求格式来访问。 请求格式: http://ip:port/rest/服务id/your_path,其中http://ip:port/rest/为固定部分,后面跟微服务请求路径。 下面是一个微服务的接口例子 @RestController @RequestMapping("food") public class Traditiona
为了防止实现细节泄漏,可以实现,而不是返回,然后需要从接口实现。因此,无论内部数据结构如何管理,对元素的访问都是通过进行的。 对于Java8,可能希望将添加到。(另请参阅《Java8lambdas》一书中关于支持的建议)。虽然添加方法并不困难(我也读过关于为什么Iterable不提供流的问题),但奇怪的是Java没有为添加接口来镜像思想。(好吧,可能有一个不同的名称,因为是为了永远使用CORBA的
所以我有一个叫做PlayingCard的类,它创建了一个包含int秩和int花色(模拟扑克牌)的对象。 然后我需要创建一个名为PackBuilder的程序,该程序应该模拟使用我的类构建一副卡片。 问题是我不知道如何给每个对象起一个新名字。我想到了类似这样的数组: 但是它说cardDeck已经定义好了(我不确定我是否做得不对,或者使用数组是否不起作用) 我想要的命名方案类似于“card1”“card
文件位置:GatewayWorker/Lib/Gateway.php LibGateway类是Gateway/BusinessWorker模型中给客户端发送数据的类。 提供了单发、群发以及关闭客户端连接的接口。 提示 GatewayWorker提供的所有接口都是支持分布式调用的,所以业务代码不需要任何更改,直接就可以分布式部署。
它还说在上面的代码注释,URL必须是白名单,我如何才能创建电子邮件和添加到firebase白名单链接? 我很感激你的好心帮助。 提前谢了。
本文向大家介绍pybind11: C++ 工程提供 Python 接口的实例代码,包括了pybind11: C++ 工程提供 Python 接口的实例代码的使用技巧和注意事项,需要的朋友参考一下 C/C++ 工程提供 Python 接口,有利于融合进 Python 的生态。现在 Python 在应用层,有其得天独厚的优势。尤其因为人工智能和大数据的推波助澜, Python 现在以及未来,将长期是最