如何使用 利用工厂模式创建出来的对象中的方法

发布于 2022-08-31 09:20:18 字数 246 浏览 18 评论 0

用的C#;
比如有个abstract class叫item,其他两个类classA和classB都继承item;
使用工厂模式创建一个对象,新建的这个对象是item类,我能通过obj.getType().Name方法判断这个类实际上是classA还是classB;
在我知道这个类实际上是classA还是classB之后,如果想使用classA或者classB他们自己的方法,我应该怎么办?
刚开始接触设计模式这些知识,还希望各位给一些建议!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

溇涏 2022-09-07 09:20:18

面向对象的特性是 抽象 封装 继承 多态

如果A和B有完全不同且和item无关的方法 应该使用接口实现

abstract class item
{
}

interface IclassA
{
    void a();
}

interface IclassB
{
    void b();
}

class classA : item, IclassA
{
    public void a()
    {
        throw new NotImplementedException();
    }
}

class classB : item, IclassB
{
    public void b()
    {
        throw new NotImplementedException();
    }
}

    item item = new classA();

    if (item is IclassA)
    {
        var itemA = item as IclassA;
        itemA.a();
    }
迷雾森÷林ヴ 2022-09-07 09:20:18

类型转换一下,然后就调用呗

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文