zoukankan      html  css  js  c++  java
  • 我们需要的不仅仅是具体的完成。[学习类、接口感想]

    今天看到一个同事写了一段代码:
    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);

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

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

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


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

    类是对应现实生活中的模型。
    而且在完成类的定义的时候一定要按对象模型来定义,而不要局限语言的定义,
    不要怕具体语言完成不了。
  • 相关阅读:
    设计模式之Flyweight模式(笔记)
    【leetcode】Valid Sudoku
    POJ2369 Permutations【置换群】
    Linux下无需输入password自己主动登陆sshserver方法
    HDU 1847 Good Luck in CET-4 Everybody!(找规律版巴什博奕)
    HDU 4786Fibonacci Tree(最小生成树)
    次小生成树
    洛谷P4180 [Beijing2010组队]次小生成树Tree
    MatrixTree速成
    SP104 HIGH
  • 原文地址:https://www.cnblogs.com/king_astar/p/5671.html
Copyright © 2011-2022 走看看