龙空技术网

关于python面试中的设计模式,搞懂这些就足够了

流光易趣图 113

前言:

目前大家对“python开发模式”大体比较着重,咱们都想要分析一些“python开发模式”的相关知识。那么小编也在网上收集了一些有关“python开发模式””的相关知识,希望朋友们能喜欢,各位老铁们一起来学习一下吧!

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理

1、什么是设计模式?

设计模式是经过总结、优化,对我们经常遇到的一些编程问题的可重用的解决方案。设计模式不同于类或库可直接作用于代码。相反,它更为的高级,是一种必须在特定的情形下实现的方法模版。

2、面向对象中设计模式的六大原则是什么?

开闭原则:一个软件实体如类、模块和函数,对扩展开放,对修改关闭,即一个软件实体应该在不修改原有代码的基础上进行扩展里氏替换原则:引用父类的地方都应该能透明的调用其子类的对象依赖倒置原则:高层模块不应该依赖底层模块,两者都应该依赖其抽象类,抽象不应该依赖细节,细节依赖抽象,即针对接口编程,而非针对细节编程接口隔离原则:使用多个专门的接口,而非一个单一的总接口,即客户端的实现不应该依赖于它无关的接口。迪米特原则:一个软件实体应该尽可能少的和其它软件实体相互作用单一职责原则:一个类只负责一项职责

3、列举几个常⻅的设计模式?

创建模式:提供实例化的方法,为适合的状况提供创建对象的方法结构化模式:通常用于处理实体之间的关系,使得不同的实体可以更好的协同工作行为模式:为不同的实体创建通信,为不同的实体之间提供更方便、更灵活的通信方式

4、Mixin 设计模式是什么?它的特点和优点?

为了不违背继承必须是"is-a"的关系同时又能实现多继承的效果,从而出现了Mixin类,这个类是为了做增强功能添加到子类中特点:责任明确:必须表示是一种功能,而非一个事物功能单一:如果有多个功能,就写多个Mixin类绝对独立:子类不继承该类,也可以正常工作,只是少一个功能而已优点:

不使用Mixin会有以下的几点弊端,使用Mixin可避免

结构复杂:单继承子类的父类是什么,父类的父类是什么都是非常明确的;多继承子类有多个父类,父类又有多个父类,继承关系复杂优先顺序模糊:多继承中多个父类如果有同名方法,在开发中,容易造成思维混乱,子类不知道继承哪个父类,增加开发难度功能冲突:多继承中子类只能继承多个父类中的一个同名方法,从而导致其它父类的方法失效

5、什么是单例模式?单例模式的作用?

单例模式:在整个项目/系统中,一个类只有一个实例的存在作用:节约内存资源

6、单例模式的应用场景有那些?

python的logger、Windows的资源管理器、线程池、网站计数器等

7、用python实现单例模式

# 创建一个单例模式class Singleton(object):    _instance = None    def __new__(cls,*args,**kwargs):        if not cls._instance:            cls._instance = super(Singleton, cls).__new__(cls,*args,**kwargs)        return cls._instanceclass MyClass(Singleton):    pass#新建两个对象m1=MyClass()m2=MyClass()#验证两个对象是否一致print(m1 is m2)print(id(m1), id(m2))

私信小编01即可获取大量Python学习资料

标签: #python开发模式