这篇文章主要介绍“Python如何实现抽象工厂模式”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python如何实现抽象工厂模式”文章能帮助大家解决问题。
实 现
下面是实现Abstract Factor模式的一些有用技术:
1) 将工厂作为单件 一个应用中一般每个产品系列只需一个ConcreteFactory的实例。因此工厂通常最好实现为一个Singleton(3.5)。
只有一句话,但是并没有给出实现。为了说明这个问题,作者按照自己的理解,以前面提到的操作系统主题的例子为背景提供一个实现。
类图:
有关Singleton设计模式的内容会在后续文章中详细介绍,这里先大概提一下。
ThemeFactory中首先将构造函数和析构函数设成保护的,这样用户就没有办法直接构建和销毁工厂对象。用户构建和销毁对象可以使用另外提供的两个公开的静态方法:getInstance和deleteInstance。Sington模式就是通过这种方式保证同一时刻只有一个对象存在的。
生成产品的createWindow和createScrobar两个接口,大家应该已经很熟悉了。
头文件
首先观察include语句部分,为了控制具象类的创建和销毁,抽象类的实现包含了3个具象类的头文件。一般来讲这种感觉不怎么好。这个问题可以解决,但是会比较繁琐。这里就不再深入讨论了。
接下来是两个静态变量:instance用来保存ThemeFactory唯一的具象类实例;system_theme用来保存系统的设定值。由于这是个演示程序,所以用这么一个变量来控制程序的运行。
其余的代码就更加简单,这里不再说明。
利用者代码
首先请注意,这里只包含了抽象类的头文件。并且由于抽象类的头文件中也没有包含具象类的头文件,所以具象类对利用者完全不可见。当系统的主题发生变化时,自动实现了具象工厂类的切换。
执行结果
注意观察工厂的切换动作。
关于“Python如何实现抽象工厂模式”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。