导航:首页 > 编程语言 > pythondecorator模块

pythondecorator模块

发布时间:2025-07-22 03:34:04

python面试一般问什么常用设计模式

1.设计模式介绍
设计模式(Design Patterns)

——可复用面向对象软件的基础

设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现在中都有相应的原理来与之对应,每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是它能被广泛应用的原因。

2. 设计模式分类
经典的《设计模式》一书归纳出23种设计模式,这23种模式又可归为,创建型、结构型和行为型3大类

2.1.创建型模式
前面讲过,社会化的分工越来越细,自然在软件设计方面也是如此,因此对象的创建和对象的使用分开也就成为了必然趋势。因为对象的创建会消耗掉系统的很多资源,所以单独对对象的创建进行研究,从而能够高效地创建对象就是创建型模式要探讨的问题。这里有6个具体的创建型模式可供研究,它们分别是:

简单工厂模式(Simple Factory);

工厂方法模式(Factory Method);

抽象工厂模式(Abstract Factory);

创建者模式(Builder);

原型模式(Prototype);

单例模式(Singleton)。

说明:严格来说,简单工厂模式不是GoF总结出来的23种设计模式之一。

2.2 结构型模式
在解决了对象的创建问题之后,对象的组成以及对象之间的依赖关系就成了开发人员关注的焦点,因为如何设计对象的结构、继承和依赖关系会影响到后续程序的维护性、代码的健壮性、耦合性等。对象结构的设计很容易体现出设计人员水平的高低,这里有7个具体的结构型模式可供研究,它们分别是:

外观模式(Facade);

适配器模式(Adapter);

代理模式(Proxy);

装饰模式(Decorator);

桥模式(Bridge);

组合模式(Composite);

享元模式(Flyweight)

2.3 行为型模式
在对象的结构和对象的创建问题都解决了之后,就剩下对象的行为问题了,如果对象的行为设计的好,那么对象的行为就会更清晰,它们之间的协作效率就会提高,这里有11个具体的行为型模式可供研究,它们分别是:

模板方法模式(Template Method);

观察者模式(Observer);

状态模式(State);

策略模式(Strategy);

职责链模式(Chain of Responsibility);

命令模式(Command);

访问者模式(Visitor);

调停者模式(Mediator);

备忘录模式(Memento);

迭代器模式(Iterator);

解释器模式(Interpreter)。

3. 设计模式的六大原则
1、开闭原则(Open Close Principle)

开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后面的具体设计中我们会提到这点。

2、里氏代换原则(Liskov Substitution Principle)

里氏代换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。 LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。里氏代换原则是对“开-闭”原则的补充。实现“开-闭”原则的关键步骤就是抽象化。而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。—— From Bai 网络

3、依赖倒转原则(Dependence Inversion Principle)

这个是开闭原则的基础,具体内容:真对接口编程,依赖于抽象而不依赖于具体。

4、接口隔离原则(Interface Segregation Principle)

这个原则的意思是:使用多个隔离的接口,比使用单个接口要好。还是一个降低类之间的耦合度的意思,从这儿我们看出,其实设计模式就是一个软件的设计思想,从大型软件架构出发,为了升级和维护方便。所以上文中多次出现:降低依赖,降低耦合。

5、迪米特法则(最少知道原则)(Demeter Principle)

为什么叫最少知道原则,就是说:一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立。

6、合成复用原则(Composite Reuse Principle)

原则是尽量使用合成/聚合的方式,而不是使用继承。

❷ python中的模块、库、包有什么区别

模块,库,包主要区别在于他们的定义与所指范围不同。

python模块,包含并且有组织的代码片段为模块,sample.py其中文件名smaple为模块名字。

而包是一个有层次的文件目录结构,它定义了由无数个模块或启搏隐无数个子包组成的python应用程序执行环境。

库的概念是具有相关功能模块的集合。这也是正是Python的一大特色之一,即具有强大的标准库,还有第三方库以及自定义模块。


模块和包是“存储层面”

模块就是一个让你import的文件包就是让你importfrom的地方例如你下载好某个包,然后把这个包解压到某个特定路径,然后就可以fromxxxximportyyyy.py了剩下的概银梁念都是“逻辑层面”,是不分语言的类我不想多解释,随便找本编程入门书去看吧库和框架都是用来定义某个包的使用目的的。

框架相当于定了包的用途,在这个用途上你进行二次开发(例如django相当于是一个websrv端),一般最多也就你在main里去调用它的入口或者通过decorator(@)来注册什么东西到框架里库则是相当于一个工具箱,你可以从中拿出任意工具在任意地点使用一悄厅个包里可以有库,也可以有框架,也可以两者都有


阅读全文

与pythondecorator模块相关的资料

热点内容
如何购买电脑服务器 浏览:36
家政app系统源码 浏览:450
安卓手机照片怎么移动到电脑 浏览:794
哪个编程语言兼容性最差 浏览:522
上海大众app怎么激活 浏览:1000
命令方块指令镐子附魔 浏览:582
linux文件所在目录 浏览:702
上汽荣威app怎么控制车辆 浏览:925
资本监管指标源码 浏览:92
java从文件读取空格 浏览:477
00后需要什么app 浏览:172
百度加密猫官网 浏览:668
微信动态图app哪个软件好 浏览:630
浪潮云南服务器基地云主机 浏览:558
java程序员简历模板免费 浏览:364
java字符串截取前 浏览:112
加密32目窗纱 浏览:435
多态编译看左运行看右是规定吗 浏览:752
程序员的工资多少 浏览:362
放松心情缓解压力吃喝文案 浏览:50