flutter中使用建造者模式

分析问题

今天在我的flutter工程中遇到一个问题,有A,B两个页面,在某种情况下B页面需要跳转到一个新的页面进行一些业务操做,而新的页面和A页面构成情况是相似的,但是业务逻辑细节上不一样。

旧的解决方案:不创建新页面,让a替代这个新页面,实现a时在细节不一样的地方进行判断,是进行原来的业务逻辑还是进行“新页面”的业务逻辑。

之前只是少数情况不一样,所以可以用这种判断的形式来实现。但是由于业务需求的变动,“新页面”的逻辑已经很多跟A页面不一样了,所以再照旧得解决方案来的话,需要判断的地方就太多了。这也暴露了旧的解决方案实在是比较敷衍,程序可拓展性非常弱。新的解决方案应运而生。

新的解决方案:在设计模式中,针对类的创造型设计模式总共有四种:单例工厂模式,单例,建造者,模板模式。由于两个界面的页面构成相似,但是实现细节不同,选择了构造者模式。

解决问题

1.目标类

A界面和新界面的界面构成都是由头部,左中右部,这四部分构成的。

class Editor {
  Widget barWidget;
  Widget leftWidget;
  Widget centerWidget;
  Widget rightWidget;
}

 

2.抽象builder

抽象builder给出分别实现这四部分细节的抽象方法,以及一个获取目标类实例的一个方法。

abstract class EditorBuilder {

  void setBar();

  void setLeftWidget();

  void setCenterWidget();

  void setRightWidget()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值