简单工厂模式见编程艺术


    大四的小菜同学接受了面试,用了10分钟不到的时间,就把计算器控制台程序编好了。速度之快,代码无错,也就只能说明小菜同学的基本功很好。但是他却面试受挫,这是为什么呢?

    一、代码毛病和规范

    命名不规范,数字A、B、C、D直接用A、B、C、D表示,在改进之后应该是numberA、numberB、numberC、numberD。代码不是自己能够看懂就行的,更多的是给别人看的。判断分支问题,小菜的代码里每个条件都要做判断。于是计算机就做了三次无用功。代码的编写应该减少计算机的工作量,用最简单最好的代码让程序实现功能。

    在除数的时候,如果用户输入了0,或者用户输入的是字符符号而不是数字的情况下没有相对友好的提示,这使得用户看不懂或是措手不及。所以在编写程序的时候,应多方面的考虑用户可能遇到的问题。

    二、面向对象

    小菜面试时的题目要求是面向对象语言实现计算器控制台程序,但是小菜所编的程序很明显就是一个面向过程的程序。

    面向过程的编程知识满足实现当前的需求,程序不容易维护,不容易扩展,更不容易复用,从而达不到高质量代码的要求。

    作为我国古代四大发明之一的活字印刷术正好体现了面向对象这一思想。可维护性强,这一次制作的字完全可以在喉后来的印刷中重复使用,也就是可复用性。就像作者要更改文章内容,只需另刻字加入即可,也就是可扩展。字可移动做到满足排列需求,就是灵活性好。

    面向对象编程可以减少我们的工作量,客户的需求是不段变化的,所以程序需要经常性的动手术,如果我们的代码不容易维护,灵活性差,不容易扩展,不可复用,加班加点就是家常便饭了。面向对象的开始,我们是考虑通过封装、继承、多态把程序的耦合度降低,这样就可以使得程序更加的灵活,容易修改,并且易于复用。

    代码的复用不是简单的复制。当程序代码中重复的代码多到一定程度,维护的时候,可能就是一场灾难。越大的系统,这种方式的带来的问题越严重,编程有一原则,就是用尽可能的办法去避免重复。

    业务的封装可以使得业务逻辑和界面逻辑分开,让它们之间的耦合度下降,只有分离开,才可以达到容易维护或扩展。

    三、总结

    在简单工厂模式思想下编出的代码,应该是具有可维护性、可复用性、可扩展性、灵活性,不管是控制台程序、Windows程序、web程序、PDA或手机程序,都可以用这段代码来实现计算器的功能。所以说,编程是一门技术,更加是一门艺术。但是简单工厂模式没有体现开放—封闭原则。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 14
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值