首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对象的耦合

对象的耦合
EN

Stack Overflow用户
提问于 2011-04-21 00:31:36
回答 1查看 242关注 0票数 0

假设我有分别属于A、B和C类的doA()、doB()和doC()方法。

除非我错了,否则doA()方法应该属于A类。它必须从A类执行。如果在B类中存在为A负责的doA()方法,则A类耦合到B的服务。这也代表了低内聚和高耦合。

我的推理正确吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-21 00:39:41

如果一个类的所有方法都对它的所有成员变量进行操作,那么它就具有最大内聚力。

代码语言:javascript
复制
public class MyClass
{
    private int value1;
    private int value2;
    private int value3;

    public int Method1()
    {
        return value1 + value2;
    }

    public int Method2()
    {
        return value1 - value2;
    }

    // doesn't belong on this class
    public int Method3()
    {
        return value3 * 2;
    }
}

耦合有两种形式:

  1. A类在内部使用另一个类。这是耦合,但还可以,因为它是继承

上的组合的一个示例

示例:

代码语言:javascript
复制
public class MyClass
{
    public void Method1()
    {
        var c = new MyOtherClass();
        c.DoSomething();
    }
}

  1. 更糟糕的耦合看起来像这样,通常被称为Law of Demeter违规。

示例:

代码语言:javascript
复制
public class MyClass
{
    public void Method1()
    {
        var c = new MyOtherClass();
        var size = c.Members.Size;
        ...
    }
}

在这种情况下,MyClass不仅耦合到MyOtherClass,而且还耦合到MyOtherClass的结构,这就是你遇到麻烦的地方,你的代码变得僵硬和脆弱。

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

https://stackoverflow.com/questions/5733604

复制
相关文章

相似问题

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