- A+
1. 简答
了解设计模式吗?请说出几个并用代码实现。
设计模式是经过总结、优化的,对我们经常会遇到的一些编程问题的可重用解决方案。一个设计模式并不像一个类或是一个库那样能够直接作用于我们的代码。反之,设计模式更为高级,他是一种必须在特定的情形下实现的一种方法模板。设计模式不会绑定具体的编程语言,一个很好的设计模式应该能够用大部分编程语言
实现。
三种最基本的设计模式:
1.创建模式:提供实例化的方法,为适合的状况提供相应的对象创建方法。
1.1工厂方法
1.2抽象方法
1.3建造者
1.4原型
1.5单例
2.结构化模式:通常用来处理实体之间的关系,使得这些实体能够更好的协同工作。
2.1适配器
2.2桥连
2.3组合
2.4装饰
2.5外观
2.6享元
2.7代理
3.行为模式:用于在不同的实体创建进行通信,为实体之间的通信提供更容易,更灵活的通信方法。
3.1解释器
3.2模板方法
3.3责任链
3.4命令
3.5迭代器
3.6中介者
3.7备忘录
3.8观察者
3.9状态
3.10策略
3.11访问者
工厂方法:
class made_in_china:
def made(self):
print("中国制造!!!")
class made_in_henan(made_in_china):
def made(self):
print("河南制造!!!")
class made_in_henbei(made_in_china):
def made(self):
print("河北制造!!!")
#创建工厂类
class Factory:
@classmethod
def made_in_factory(cls,name):
ret = None
if name == "nan":
ret = made_in_henan()
elif name == "bei":
ret = made_in_henbei()
return ret
def main():
made_in = Factory.made_in_factory("nan")
made_in.made()
#程序入口
main()
单例模式:
#单例模式
class singleton_pattern:
__sp = None
def __new__(*args,**kwargs):
if not args[0].__sp:
args[0].__sp = object.__new__(args[0])
return args[0].__sp
a = singleton_pattern()
b = singleton_pattern()
print(a==b)