我正在处理的c#项目引用了驻留在外部类libray中的“产品”具体类型。 “产品”类未实现任何接口。
我想在“产品”的基础上创建一个“ IProduct”接口,并使用此接口代码,因此我可以针对接口而不是实现进行编程。
由于我仍然想继续使用“ Product”类型,因此什么是让我的代码知道“ Product”实现“ IProduct”的好模式?
由于“产品”驻留在外部库中,因此我无法更改其声明(即Procut:IProduct)。
该类也没有公共构造函数,所以我想扩展它不是一个选择。
在这种情况下,什么是好的解决方案模式?包装纸?
谢谢。
答案 0 :(得分:0)
您可能想要使用适配器模式。
因此您可以执行以下操作:
public class Product
{
// Your Product Class
}
public class MyProduct : Product, IProduct
{
}
在MyProduct
类实现接口的地方,还具有Product
类可用的所有公共和受保护的方法/属性。这使您可以扩展原始类,而无需遵循Open / Close原理修改Product
类。
您可以在此处了解更多信息:https://exceptionnotfound.net/the-daily-design-pattern-adapter/