C语言中,如何实现与外观模式(Facade)类似的设计模式?

2026-05-20 08:241阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计589个文字,预计阅读时间需要3分钟。

C语言中,如何实现与外观模式(Facade)类似的设计模式?

外模式是程序员最底层的意识用的一种模式,比如我们习惯于对复杂系统做一个封装接口。外模式本质上是对一堆复杂对象和应用接口的抽取,对其封装隔离,对调用者屏蔽细节。

外观模式应该是程序员最下意识用的一种模式,比如我们习惯性的对复杂系统做一个封装接口。外观模式其本质是对一堆复杂对象和应用的接口抽象,对它们进行封装隔离,对于调用者来说只需要关系接口的实现,而不需要知道内部有哪些对象和调用。

作用

为模块的一组接口提供一致的界面,定义了一个高层接口,这个接口使得这一模块更加容易使用。

类视图

C语言中,如何实现与外观模式(Facade)类似的设计模式?

实现

//复杂或多对象 class objectOne { public void operator() { cout<<"operator one\n"; } } class objectTwo { public void operator() { cout<<"operator two\n"; } } class objectThree { public void operator() { cout<<"operator three\n"; } } class objectFour { public void operator() { cout<<"operator four\n"; } } //外观实现 class Facade { objectOne one; objectTwo two; objectThree three; objectFour four; public Facade() { obj1 = new objectOne(); obj2 = new objectTwo(); obj3 = new objectThree(); obj4 = new objectFour(); } public void MethodA() { cout<<" Fun A()-----\n"); obj1.operator(); obj2.operator(); obj3.operator(); obj4.operator(); } public void MethodB() { cout<<" Fun B()-----\n"); obj4.operator(); obj3.operator(); obj2.operator(); obj1.operator(); } } //调用 void main() { Facade facade = new Facade(); facade.MethodA(); facade.MethodB(); }

应用场景

  • 构建上下层次的模块时,如果上下进行调用,则会出现强耦合,用外观模式实现上下级模块的接口,简化相互调用的交叉,降低上下层的耦合度;
  • 在多个复杂模块相互协作工作时,向上用外观类提炼出高层接口,对外隐藏其内部的实现并隔离变化;
  • 对单独模块或者对复杂模块的封装,提炼出外观类进行封装访问,解耦合。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持自由互联。

本文共计589个文字,预计阅读时间需要3分钟。

C语言中,如何实现与外观模式(Facade)类似的设计模式?

外模式是程序员最底层的意识用的一种模式,比如我们习惯于对复杂系统做一个封装接口。外模式本质上是对一堆复杂对象和应用接口的抽取,对其封装隔离,对调用者屏蔽细节。

外观模式应该是程序员最下意识用的一种模式,比如我们习惯性的对复杂系统做一个封装接口。外观模式其本质是对一堆复杂对象和应用的接口抽象,对它们进行封装隔离,对于调用者来说只需要关系接口的实现,而不需要知道内部有哪些对象和调用。

作用

为模块的一组接口提供一致的界面,定义了一个高层接口,这个接口使得这一模块更加容易使用。

类视图

C语言中,如何实现与外观模式(Facade)类似的设计模式?

实现

//复杂或多对象 class objectOne { public void operator() { cout<<"operator one\n"; } } class objectTwo { public void operator() { cout<<"operator two\n"; } } class objectThree { public void operator() { cout<<"operator three\n"; } } class objectFour { public void operator() { cout<<"operator four\n"; } } //外观实现 class Facade { objectOne one; objectTwo two; objectThree three; objectFour four; public Facade() { obj1 = new objectOne(); obj2 = new objectTwo(); obj3 = new objectThree(); obj4 = new objectFour(); } public void MethodA() { cout<<" Fun A()-----\n"); obj1.operator(); obj2.operator(); obj3.operator(); obj4.operator(); } public void MethodB() { cout<<" Fun B()-----\n"); obj4.operator(); obj3.operator(); obj2.operator(); obj1.operator(); } } //调用 void main() { Facade facade = new Facade(); facade.MethodA(); facade.MethodB(); }

应用场景

  • 构建上下层次的模块时,如果上下进行调用,则会出现强耦合,用外观模式实现上下级模块的接口,简化相互调用的交叉,降低上下层的耦合度;
  • 在多个复杂模块相互协作工作时,向上用外观类提炼出高层接口,对外隐藏其内部的实现并隔离变化;
  • 对单独模块或者对复杂模块的封装,提炼出外观类进行封装访问,解耦合。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持自由互联。