zoukankan      html  css  js  c++  java
  • 第一章.良好应用程序基石(总结)

    不会总结的程序员,不是好的程序员!

    回头看,我们做了什么?

    1.确认你的软件在做客户要它做的事

    是的,我们做了让用户提供吉他属性,可以从Guitar库中搜索到心仪的吉他,之间出现了总是没有匹配到用户想要的吉他,导致吉他店差点倒闭。还好经过努力,我们把自己犯得错误纠正了!不然店长就和我们同归于尽了!太可怕了。

    改正了大小写不匹配的错误,具体一点就是,把所有可以限制的吉他属性,通过枚举一一列出,想使用哪个,就调用哪个。不能限制的吉他属性,只好全部转为小写来匹配。

    2.运用基本的OO原则来增加软件的灵活性

    完成了吉他店长想要的功能,我们重新审视自己的代码,发现Guitar的对象不仅用来存储吉他对象,同时还存储用户搜索吉他的属性。这样不好,于是我们从Guitar类中分离出GuitarSpec类(哪些可以让用户搜索的属性,全部分割装填到GuitarSpec类中)。

    3.努力实现可维护、可重用的设计

    我们又想到了未来,如果店长心血来潮,想要增加搜索属性,比如弦的个数。

    于是,我们如同老黄牛一样,将代码改个底朝天,所有涉及到增加搜索属性的地方,全部让我们找了个遍,而且还在担心是不是有些地方我们没有找到。

    月薪是固定的,工作时长是无限的。

    为了少工作,来确保每小时拿到钱数是最大的。

    恍然大悟,我们想到为什么不把要修改的地方聚集到一起,所有新增搜索属性全部写在GuitarSpec类中,再让对比属性的方法也写在GuitarSpec类中,这样我们用最小的工作量完成了任务。

    谢天谢地,我们把未来的事情都办妥了,但是我们拿不到未来的工资。

  • 相关阅读:
    Ubuntu下通过makefile生成静态库和动态库简单实例
    C++获取Windows7 32位系统中所有进程名(类似于任务管理器中的进程)
    剑指offer(一)
    Leetcode题解(一)
    C Run-Time Error R6034问题的解决
    windows环境中利用NMake工具编译连接C++源代码
    通过命令行使用cl.exe编译器
    [bzoj3709] [PA2014]Bohater
    [bzoj3714] [PA2014]Kuglarz
    [bzoj2724] [Violet 6]蒲公英
  • 原文地址:https://www.cnblogs.com/lanshanxiao/p/7188421.html
Copyright © 2011-2022 走看看