学习Python设计模式之"外观模式"实例介绍

python中设计模式之外观模式主张以分多模块进行代码管理而减少耦合,下面用实例来进行说明。

应用特性:

在很多复杂而小功能需要调用需求时,而且这些调用往往还有一定相关性,即一调用就是一系列的。

结构特性:

把原本复杂而繁多的调用,规划统一到一个入口类中,从此只通过这一个入口调用就可以了。

立即学习“Python免费学习笔记(深入)”;

代码结构示例:

class ModuleOne(object):  def Create(self):    print 'create module one instance'  def Delete(self):    print 'delete module one instance'class ModuleTwo(object):  def Create(self):    print 'create module two instance'  def Delete(self):    print 'delete module two instance'class Facade(object):  def init(self):    self.module_one = ModuleOne()    self.module_two = ModuleTwo()  def create_module_one(self):    self.module_one.Create()  def create_module_two(self):    self.module_two.Create()  def create_both(self):    self.module_one.Create()    self.module_two.Create()  def delete_module_one(self):    self.module_one.Delete()  def delete_module_two(self):    self.module_two.Delete()  def delete_both(self):    self.module_one.Delete()    self.module_two.Delete()

登录后复制

有点类似代理模式,不同之处是,外观模式不仅代理了一个子系统的各个模块的功能,同时站在子系统的角度,通过组合子系统各模块的功能,对外提供更加高层的接口,从而在语义上更加满足子系统层面的需求。

随着系统功能的不断扩张,当需要将系统划分成多个子系统或子模块,以减少耦合、降低系统代码复杂度、提高可维护性时,代理模式通常会有用武之地。

再来看一个例子:

class small_or_piece1:   def init(self):     pass      def do_small1(self):     print 'do small 1'    class small_or_piece_2:   def init(self):     pass      def do_small2(self):     print 'do small 2'    class small_or_piece_3:   def init(self):     pass      def do_small3(self):     print 'do small 3'  class outside:   def init(self):     self.small1 = small_or_piece1()     self.small2 = small_or_piece_2()     self.small3 = small_or_piece_3()      def method1(self):     self.small1.do_small1()  ##如果这里调用的不只2两函数,作用就显示出来了,可以把原本复杂的函数调用关系清楚化,统一化     self.small2.do_small2()        def method2(self):     self.small2.do_small2()     self.small3.do_small3()  if name == 'main':   osd = outside()   osd.method1()   osd.method2()

登录后复制

结果:

do small 1 do small 2 do small 2 do small 3

登录后复制

以上就是学习Python设计模式之”外观模式”实例介绍的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2276240.html

(0)
上一篇 2025年2月27日 15:03:49
下一篇 2025年2月24日 01:20:04

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 如何使用Python中的面向对象设计模式

    如何使用Python中的面向对象设计模式,需要具体代码示例 概述:在Python编程中,面向对象设计模式是非常重要的一个概念。它提供了一种结构化的方法来解决问题,并使得代码更易于理解、维护和扩展。本文将介绍几种常见的面向对象设计模式,并提供…

    2025年2月26日
    200
  • Python中的并发编程模型和设计模式的选择和实现原则是什么?

    Python中的并发编程模型和设计模式的选择和实现原则 随着计算机性能的提升和需求的增加,同时处理多个任务的能力已经成为了现代编程不可或缺的一部分。在Python中,我们可以利用并发编程来实现并行执行多个任务的目的。在这篇文章中,我们将讨论…

    2025年2月26日
    200
  • Python开发建议:学习并应用设计模式和设计原则

    设计模式和设计原则是软件开发中非常重要的概念,它们可以帮助开发人员编写可维护和高效的代码。而在Python开发中,学习并应用设计模式和设计原则更是至关重要的。本文将探讨Python开发中的一些设计模式和设计原则,并提供一些建议。 首先,让我…

    2025年2月26日
    200
  • 如何通过编写代码来学习和运用 PHP8 的设计模式

    如何通过编写代码来学习和运用 PHP8 的设计模式 设计模式是软件开发中常用的解决问题的方法论,它可以提高代码的可扩展性、可维护性和重用性。而PHP8作为最新版的PHP语言,也引入了许多新特性和改进,提供更多的工具和功能来支持设计模式的实现…

    2025年2月25日
    200
  • php的设计模式是什么

    设计模式 单例模式解决的是如何在整个项目中创建唯一对象实例的问题,工厂模式解决的是如何不通过new建立实例对象的方法。(php视频教程) 单例模式 $_instance必须声明为静态的私有变量构造函数和析构函数必须声明为私有,防止外部程序n…

    2025年2月25日 编程技术
    200
  • 浅谈PHP中的迭代器模式

    在之前的文章《深入浅析php中的观察者模式》中我们介绍了php中的观察者模式,下面本篇文章带大家了解一下php中的迭代器模式。 一说到这个模式,就不得不提循环语句。在《大话设计模式》中,作者说道这个模式现在的学习意义更大于实际意义,这是为什…

    2025年2月24日
    200
  • 简述PHP设计模式中的适配器模式

    本篇文章主要介绍简述php设计模式中的适配器模式,感兴趣的朋友参考下,希望对大家有所帮助。 目标: 可将一个类的接口转换成客户希望的另外一个接口,使得原本不兼容的接口能够一起工作。通俗的理解就是将不同接口适配成统一的API接口。 角色: T…

    数据库 2025年2月24日
    400
  • 深入浅析PHP中的模板方法模式

    在之前的文章《一文了解php中的门面模式》中我们介绍了php中的门面模式,下面本篇文章带大家了解一下php设计模式中的模板方法模式。 模板方法模式,也是我们经常会在不经意间有会用到的模式之一。这个模式是对继承的最好诠释。当子类中有重复的动作…

    2025年2月24日
    200
  • 深度剖析Spring设计模式:揭示其核心概念和适用范围

    深入解析Spring设计模式:探索其核心概念和应用领域 引言:Spring是一个功能强大的开源应用框架,它提供了许多设计模式的实现方法,使得开发者能够更加高效地开发和维护应用程序。本文将深入探讨Spring的设计模式,重点介绍其核心概念以及…

    2025年2月24日
    200
  • PHP设计模式学习之“原型模式”浅析

    本篇文章带大家了解一下php设计模式的原型模式,介绍一下适用场景、优缺点,以及实现代码,感兴趣的朋友下面一起来看一下吧,希望对大家有帮助。 原型模式,属于创建型模式的一种。主要针对对象进行克隆,把被克隆的对象称之为原型,原型模式称之为克隆模…

    2025年2月24日
    200

发表回复

登录后才能评论