gpt4 book ai didi

oop - 将一个类子类化只是为了分离一些功能部分好吗?

转载 作者:行者123 更新时间:2023-12-04 00:48:50 25 4
gpt4 key购买 nike

假设我们有抽象类A(所有例子都在C#中)

public abstract class A
{
private Foo foo;

public A() { }

public void DoSomethingUsingFoo()
{
//stuff
}

public void DoSomethingElseUsingFoo()
{
//stuff
}

//a lot of other stuff...
}

但是我们可以将它分成两个类 AB:

public abstract class A
{
public A() { }

//a lot of stuff...
}

public abstract class B : A
{
private Foo foo;

public B() : base() { }

public void DoSomethingUsingFoo()
{
//stuff
}

public void DoSomethingElseUsingFoo()
{
//stuff
}

//nothing else or just some overrides of A stuff
}

这很好,但我们有 99.99% 的把握,没有人会继承 A,因为 B 中的功能非常重要。

有两个单独的类只是为了将一些代码分成两部分并分离功能元素仍然好吗?

最佳答案

对我来说,您的继承没有任何代码重用和多态性的目的。继承并不意味着仅用于将一大段代码拆分成两个地方以便于阅读。引入额外层带来的复杂性比清除更复杂,因此我认为这不是您应该在这里做的事情。

我建议您将 A 类保持原样,稍后当您找到更有力的重构理由时,您就可以进行重构。在那一刻,我也同意 Mark 的观点,你应该考虑组合而不是继承。

关于oop - 将一个类子类化只是为了分离一些功能部分好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2513998/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com