python3 最简单的实现 模版设计模式

在项目开发过程时,遇见某些子类的逻辑处理流程大致相同,可是用模板模式减少代码冗余,降低耦合。

例如实现某一窗体或者页面启动时,第一步需要加载启动界面图片资源,第二步加载个人信息,第三步加载个人钱包信息,第四步关闭或者隐藏上一个窗口(界面)。这个时候类可以写成如下方式:

class LoadNewWindows:
    def load(self):
        print('启动界面...')
        self.loadImg()
        self.loadUserInfo()
        self.loadWalletInfo()
        
    def loadImg(self):
        print('记载图片...')
    def loadUserInfo(self):
        print('加载用户信息...')
    def loadWalletInfo(self):
        print('加载钱包信息...')

loadwin=LoadNewWindows()
loadwin.load()

以上类定义了一个load方法,调用内部方法实现流程。

运行如下:
在这里插入图片描述
这个时候如果需要加载其它窗口,实现流程与以上实现类似,只是多了一个加载信息,例如需要额外加载在线用户信息;再或者不需要加载钱包信息,这个时候就可以以以上的类作为一个基类,继承后再新增方法或者重新调用步骤即可:

class loadOtherWindows(LoadNewWindows):
    def load(self):
        print('启动新界面...')
        self.loadImg()
        self.loadUserInfo()
        self.loadOtherUserInfo()
    def loadOtherUserInfo(self):
        print('加载其它用户信息...')

以上方法为 LoadNewWindows 子类,并且有一个新的方法 loadOtherUserInfo,用于加载其它用户信息,其它流程与父类相似,只是少了加载钱包,因为在这里,我们设定的窗口是不需要加载钱包信息。在load中实现了流程的调用。最后调用两个类:

loadwin=LoadNewWindows()
loadwin.load()

print('\n--------------分界线------------\n')

loadOtherWin=loadOtherWindows()
loadOtherWin.load()

结果如下:
在这里插入图片描述
模板方法减少了代码冗余,降低了耦合,但是在可读性上有一定影响,但是开发时有文档的说明,却是问题不大。
完整代码如下:

class LoadNewWindows:
    def load(self):
        print('启动界面...')
        self.loadImg()
        self.loadUserInfo()
        self.loadWalletInfo()
        
    def loadImg(self):
        print('记载图片...')
    def loadUserInfo(self):
        print('加载用户信息...')
    def loadWalletInfo(self):
        print('加载钱包信息...')

class loadOtherWindows(LoadNewWindows):
    def load(self):
        print('启动新界面...')
        self.loadImg()
        self.loadUserInfo()
        self.loadOtherUserInfo()
    def loadOtherUserInfo(self):
        print('加载其它用户信息...')

loadwin=LoadNewWindows()
loadwin.load()

print('\n--------------分界线------------\n')

loadOtherWin=loadOtherWindows()
loadOtherWin.load()
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

1_bit

你的余额交给我吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值