您的位置:首页 > 其它

工厂模式

2015-09-29 17:37 225 查看
最近一直做支付结果页面非常烦恼。情况是这样的,我写了一个支付结果页payResultView,起初只有"成功"和"失败"两种界面,因为共用的控件多,所以加了很多if self判断,耦合性度非常高,但代码量非常少,感觉还不错。

没过不久恶梦来了,现在变成了"成功"、"失败"、"成功带红包"、"打赏成功"四种界面,新加了两种情况。这下我可不干了,跟产品经理说这挺难的,不好加。但产品经理觉得加这个很简单啊,没搭理我,要求我必须改。改吧!

因为之前的代码都柔在了一起,这次还是照样,写的那就一个乱啊,写的if self 太多了,逻辑我都快分不清哪是哪了。可最后不管怎么说还是写完了,可是我心想,这代码除了我没有第二个人能看懂了!!!!

最后我就反思,这么高的耦合性太不合理了,然后就想了一个更好的解决方法。添加四个view, view1,view2,view3,view4,把所以的控件分开,不互相复用,逻辑也分开,不互相影响。当一个view show的时候,就让另三个view就必须hide. 不过还有一个头疼的问题就是给控件起名字,比较说view1和view2都有一个nameLabel,为了不冲突,只能写name1Label,name2Label,这种写法很不好理解,不适合大量使用。可不管怎么说,添加4个view的方法的确是比原来的效果好。

可最近我认真读了“工厂模式”,正好能用上。先创建一个paySuperView再继承4个 子view,利用factory生成,不光在外部调用时非常的简便,而且里面的逻辑也分成了不同的类,非常清晰。说实话,这是除了苹果自带的观察者模式、委托模式、单例模式、命令模式以外,第一次使用其它设计模式。

原来我一直以为代码量少就认为好,这样是错的。结构逻辑清晰更重要!!!!

原来学c\c++,java,php,object-c无论哪门语言,最前面的总是告诉你什么叫多态,继承,可从没放在心上。

最后一句话:多用继承、delegate、扩展,尤其是继承!!!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: