依赖倒置原则:高层和低层模块示例

Dependency Inversion Principle: High Level and Low Level module example

我正在阅读以下内容link 以了解在依赖倒置原则的上下文中高级和低级模块的含义。

根据此处给出的解释,以下代码片段是 good/appropriate 示例吗?

public class HighLevel
{
    private IAbstraction _abstraction;

    public HighLevel(IAbstraction abstraction)
    {
        _abstraction = abstraction;
    }

    public void Act()
    {
        _abstraction.DoSomething();
    }

}

public interface IAbstraction
{
    void DoSomething();
}

public class LowLevel: IAbstraction
{
    public void DoSomething()
    {
        //Do something
    }
}

长话短说:是的,这是依赖倒置原则的一个例子