×

Loading...
Ad by
  • 推荐 OXIO 加拿大高速网络,最低月费仅$40. 使用推荐码 RCR37MB 可获得一个月的免费服务
Ad by
  • 推荐 OXIO 加拿大高速网络,最低月费仅$40. 使用推荐码 RCR37MB 可获得一个月的免费服务

Funny and very interesting. Some suggestions

For non-IT people, it’s hard to understand.

For example, do we have to distinguish male and female washroom? In our private washroom (in our house or apartment unit), there isn’t any difference, am I right?

Can private washroom be used only privately? Can our guests and visitors use it?

In real world, human being needs flexibility. 活人还让尿憋死

For IT people it missed some things:
abstract and interface in inheritance
inheritance vs. sealed
class member vs. static member
value type vs. reference type.
Sign in and Reply Report

Replies, comments and Discussions:

  • 工作学习 / 学科技术讨论 / 厕所是如何建成的(一):胡侃面向对象基础
    • 一点异议:
      解小便因该封装在小便的人里面。接小便才是封装到厕所里面。
      • 同意。这样的话做个修改: 某人.小便( 某男厕所.get马桶( ) ) 。这样更加符合现实一些。谢谢轮胎。
        • 应该小便者狂喊一声:小便(事件);厕所就马桶移到面前接着(响应事件);小便者完了再喊一声滚,厕所就把马桶藏起来。
        • 你怎么知道某人是男的呢?如果某厕所满了呢?你准备怎么办?
          • 好! 筒子们智慧是无穷滴......请见内:
            这么改行吗?

            try {
            某男人.小便(某男厕所.get马桶( ) );
            }catch (找不到马桶的异常 某异常) {
            某男人.国骂( );
            throw 某异常;
            }
            finally{
            某男人.拉上裤子拉链( );
            }
            • 为什么不是"某男人.小便(男厕所集合.get最近的空马桶( ) );" 会不会同时有两个男人同时找到同一个空马桶(多线程),是不是要lock? 问题是不是开始复杂化了?
              • 这会是以后章节的话题。《厕所是如何建成的》是个系列文,会针对不同主题的。不过内容都是在盖厕所,呵呵。
                • 这厕所盖得很有意思 :),支持继续盖。
            • 不妥, 请见内
            • 不妥, 请见内
              try {
              某男人.小便(某男厕所.get马桶( ) );
              某男人.拉上裤子拉链( );
              }catch (找不到马桶的异常 某异常) {
              某男人.拉上裤子拉链( ); //这样还是文明一点, 不过这个 某男人 有点白痴, 没马桶你解裤子干嘛?!
              某男人.国骂( );
              throw 某异常;
              }

              或:
              try {
              某男人.小便(某男厕所.get马桶( ) );
              }catch (找不到马桶的异常 某异常) {
              某男人.国骂( );
              throw 某异常;
              } finally{
              try{
              某男人.拉上裤子拉链( );
              }catch(拉链根本没打开的异常 某异常2){
              // 这就不上抛了, 自己处理
              }
              }
        • 小便应该在厕所里 - 这个是UNIVERSAL CONSTRAINT. 如何找到厕所对大人/小孩是不一样的, 但对大人和小孩各类是一样的. "某男厕所.get马桶( )" 多余 - 负担转嫁到CALLER
      • 其实是一个动作,这样好了:马桶。小便(小便者 某人)throws 马桶UnavailableException, GenderException
    • 基本同意。N年前听过一位高人讲解什么是 Object Oriented,他用的例子是工人阶级,呵呵。working class吗。什么是工人阶级?泛指那一类(class)勤奋,被剥削,没$$的人们。老张是工人阶级的一分子,so..老张是working class -- Worker 的一个object.
      • 这工人阶级, 无产阶级的例子易学易懂, 确实是高人.
        • MINYANGLI,看来我俩是出同门,因为我也听过类似的启发与教诲。老师有很好的哲学背景,他对 Java Class 的定义是 (大意):Class是自然界中一类有共性事物的统称。在听过working class 的例子后,这就好理解了。
          此外,虽然是多年前的事,但老师在讲解 JSP vs Servlet 时用的“野生动物园”的故事,也让人终生难忘。
      • MINYANGLI,再仔细讲讲工人阶级的故事!没怎么有启发呀~~
    • 建议先写 use case, 界定 system 和 actor。
    • Funny and very interesting. Some suggestions
      For non-IT people, it’s hard to understand.

      For example, do we have to distinguish male and female washroom? In our private washroom (in our house or apartment unit), there isn’t any difference, am I right?

      Can private washroom be used only privately? Can our guests and visitors use it?

      In real world, human being needs flexibility. 活人还让尿憋死

      For IT people it missed some things:
      abstract and interface in inheritance
      inheritance vs. sealed
      class member vs. static member
      value type vs. reference type.
    • 好文,特别适合小朋友偶。昨天看着这个OO发呆了半天。现在看了小人书版的天书,很有启发。偶当时是这样理解OO的,不知道对不对:
      ENCAPSULATE:打包,把东西整合起来(刚才看了小人书,知道还要留门)。等于是个的蛋壳,保护里面的正常工作,也同时控制访问?
      INHERITATE:这个和CLONE的意思一样吧?说白了就是为了减少工作,抄!
      POLYMORPHISM:这个和EDIT意思差不多吧?全文照抄不太好,改改里面的东西,就是自己的东西。不知道,OVERRIDE是不是就是小改,大局还是一样;OVERLOAD就是大改,与原来可谓没有太多关系,是全新的?
      ATTRIBUTE:这个就是实现功能的物质基础;METHOD:使用前述基础的方法。2者合一,保证功能的实现?
      权限:就是前面提到的蛋壳,控制使用的方式。
      是否正确,请告之,谢谢!
      • 用鸡蛋来说吧.
        ENCAPSULATE:蛋壳
        INHERITATE:鹌鹑蛋
        POLYMORPHISM:鸭蛋
        OVERRIDE: 红皮鸡蛋 
        OVERLOAD: 咸鸡蛋
        ATTRIBUTE:蛋清, 蛋黄. 
        METHOD:打蛋器.
        • INHERITATE:鹌鹑蛋, POLYMORPHISM:鸭蛋,如何解?OVERRIDE:红皮鸡蛋,OVERLOAD:咸鸡蛋,应该为“改性蛋的不同工艺”吧?
          • OVERRIDE:红皮鸡蛋,OVERLOAD:咸鸡蛋。理解了。红皮鸡蛋还是蛋,咸蛋和原来的蛋,味道差得比较大了
          • 咳, 就这么一瞎说. 其实你挺明白的, 所谓OO, 说到底就是 "抄".
            • 谢谢COOLMAO鼓励。IT原来是艺术,偶喜欢。
        • 不对.
          • TDR,偶错在哪里?概念差了,以后很吃力呀
            • 下面说了一个. 我推荐你看看上面那个工人阶级的例子, 喊一喊 mingyangli. 做为一个方法论的东西, 一定要抽象来谈, 举例仅仅是用来辅助说明抽象的概念的, 不要喧宾夺主,不然会被细节绕晕. 谈oo,举例一定要既抽象又具体,那个阶级的例子很好。
        • 打蛋器 is not a method of egg:)
          • 没找到内部的METHOD, 就找了个外部的蒙混下, 见笑, 见笑.
            • 发臭、破、生小鸡可能都能算:)
      • ENCAPSULATE:decoupling for a clean boundray INHERITATE:抄? wrong. It is 'to be'. It is reuse or it is showing identity. POLYMORPHISM:Aspect. An apple is fruit, eatable, round etc.
    • 好文,有趣儿,期待后续系列。
    • 嗯,挺好玩的。N年前第一次接触OO,当时的感觉就是它有话不好好说,本来就“开门”这件事,它非说“门.开”,为了弄个门出来,费老鼻子劲了,把跟“开”这个动作不相干的什么尺寸、颜色、生产厂家都整进来。
    • 其实这个故事给想要告诉我们:
      研究OO不要研究牛角尖的细节,否则别人会被恶心死得。
    • too many misunderstandings
    • 的确是给非专业人看的,专业人一看: 怎么这么长?还不如直接讲清楚,使用比喻是为了表达形象,但是比喻太多也是问题阿.