首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于接口实现的类构造

基于接口实现的类构造
EN

Stack Overflow用户
提问于 2014-03-16 14:16:25
回答 1查看 120关注 0票数 1

假设我们有这样的类:

代码语言:javascript
运行
复制
public abstract class WebPage
{ 
    public WebPage() 
    { ... } 
}

public class LoginOrSignUpWebPage : WebPage, ILogin, ISignUp
{
    private Info _loginInfo;
    private Info _signUpInfo;
    public readonly Info LoginInfo { get { return _meats; } }
    public readonly Info SignUpInfo { get { return _legs; } }

    public class LoginOrSignUpWebPage(Info loginInfo, Info signUpInfo) : base()
    { ... }
}

我们可以看到,WebPage希望基于它们实现的不同接口具有不同的实例化方法。

虽然可以为每个类实现单个构造,但我更愿意使用继承作为对象构造的基础。之所以如此,是因为另一个对象可能实现相同的接口,并且具有相同的实例化方式。

我考虑过使用某种(摘要?)工厂的方法,但我不确定这将如何工作。

问题:

就这一点而言,您认为基于对象继承的接口构建对象的最佳方法是什么?这将包括(可能)不同的参数,并且至少根据实现的接口传递不同的数据。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-16 15:09:03

我们可以看到,WebPage希望基于它们实现的不同接口具有不同的实例化方法。

不,他们不会。界面定义了外部类型应该是什么样的。它们没有提供实现细节,也没有关于构造函数或构造过程的信息。如果您有一个接口类型的对象,您所知道的就是可以访问接口中定义的属性和方法。

按照声明WebPage类型的方式,实现ILoginISignUp是固定的。因此,绝对需要实现这两个接口指定的任何内容。WebPage类型的每个对象都将始终提供两个接口所需的内容。

没有必要基于它正在实现的接口来构造对象,仅仅是因为您正在实现的接口在编译时是已知的,以后不能更改。因此,对于实现接口的类型,只需直接指定如何构造接口。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22438004

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档