• 我们需要的不仅仅是具体的完成。[学习类、接口感想]


    今天看到一个同事写了一段代码:
    ArrayList a =new ArrayList;
    Logitisc.Package p=new Logitisc.Package;
    a.Add(p)
    object h=new object();
    Foreach (h in a)
    {
        if (h==p)
         ///
      else
      ///
    }

    大吃一惊,他把一个(物流系统)包的对象存储在a这个arraylist里面去了,
    我仔细一看arralist帮助发现,arralist支持将一个对象加入,
    以前我一直以为只能加入string,现在才明白string也是一个对象的说法。
    然后,他告诉为什么他要这么作,

    因为一个包对象下面有小包,小包里面还有物品,
    发货的过程就是,
    把物品包装成小包,小包组合成大包。

    比如:
    库房 库房a=new 库房()
    Package p=new Package();
    goods g1=new goods();
    goods g2=new goods();
    p.add(g1);
    p.add(g2);
    库房a.add(p);

    这就是一个库房保存物品的模型。

    你看这样的过程通过对象描述多么清晰。

    所以,一直有人提倡我们在定义模型的时候,抽象一些,再抽象一些,
    首先,不要考虑实现,一旦考虑实现后,就不可避免的纠缠在细节上面,
    往往忽略对整体的考虑。


    过程和对象的主要区别在于思想差异,而非具体完成的代码。

    类是对应现实生活中的模型。
    而且在完成类的定义的时候一定要按对象模型来定义,而不要局限语言的定义,
    不要怕具体语言完成不了。
  • 相关阅读:
    题解-AtCoder ARC-083F Collecting Balls
    题解-CTS2019氪金手游
    题解-CTS2019随机立方体
    题解-APIO2019路灯
    题解-APIO2019桥梁
    vue-property-decorator 源码阅读
    如何在Vue项目中使用TypeScript
    在 Vue+TypeScript 项目中,如何配置 ESLint 和 Prettier
    JavaScript 原型和原型链
    pre-commit + imagemin 实现图片自动压缩
  • 原文地址:https://www.cnblogs.com/king_astar/p/5671.html
Copyright © 2020-2023  润新知