设计模式之《外观模式》

什么是外观模式

外观模式是一种结构型的设计模式,它为子系统提供一个统一的接口,以简化其复杂的内部结构,使得客户端能够更方便地访问子系统的功能。

为什么用外观模式

当一个系统的内部结构较为复杂,或者系统的多个模块之间存在较强的耦合性时,使用外观模式可以将系统的复杂性隐藏在子系统之后,从而降低系统的复杂度,并且使得系统更易于维护和扩展。
工作中用在哪里以android举例
在Android中,外观模式可以被广泛地应用于各个组件之间的交互,比如:

  1. Activity与Fragment之间的交互。
  2. Fragment与Fragment之间的交互。
  3. Service与Activity或Fragment之间的交互。
  4. 各种View之间的交互。

设计思路

在使用外观模式时,我们需要定义一个外观类,这个类将封装所有子系统的复杂性,并为客户端提供一个简单的接口。
在这个外观类中,我们可以引用所有子系统的类,然后封装它们的方法,使得客户端可以通过一个简单的调用来访问所有的子系统。

代码实现

在Android中,我们可以使用以下方式实现外观模式:
1. 定义一个外观类,例如:MyFacade:

public class MyFacade {
    
    

    private Activity mActivity;
    private Fragment mFragment;
    private Service mService;

    public MyFacade(Activity activity) {
    
    
        mActivity = activity;
    }

    public MyFacade(Fragment fragment) {
    
    
        mFragment = fragment;
    }

    public MyFacade(Service service) {
    
    
        mService = service;
    }

    public void doSomething() {
    
    
        if (mActivity != null) {
    
    
            // 执行Activity相关的操作
        }

        if (mFragment != null) {
    
    
            // 执行Fragment相关的操作
        }

        if (mService != null) {
    
    
            // 执行Service相关的操作
        }
    }
}

2. 在需要使用子系统的地方,使用MyFacade类来封装子系统的复杂性:

public class MainActivity extends AppCompatActivity {
    
    

    private MyFacade mFacade;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    
    
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mFacade = new MyFacade(this);

        // 使用MyFacade来调用子系统的方法
        mFacade.doSomething();
    }
}

总结

外观模式是一种可以降低系统复杂度的设计模式,它为客户端提供一个简单的接口,将子系统的复杂性隐藏在子系统之后。在Android开发中,我们可以使用外观模式来简化各个组件之间的交互,使得整个系统更易于维护和扩展。

猜你喜欢

转载自blog.csdn.net/weixin_45112340/article/details/129893296