在休息室谈论巴解组织的问题 - 页 18

 
Alexey Volchanskiy:

清楚地回答问题,不要有开拓性的鼻涕

1.你个人使用过什么并联技术。不是一般的废话,而是技术和语言的具体名称。

1.1 你的OOP版本失败在哪里?

------------

SZZY: 我在OOP教学已经超过24小时了,版主写道,在这段时间里,他禁止了10个人,并删除了大约200个愚蠢的帖子!说是写,已经有经常看你的人了,每次有40-50人,主题是必要的。需要做一个菜单--我随时都可以帮忙。

维罗格
 
George Merts:

OOP方法--是人类需要的,以简化开发,更重要的是简化对系统的支持。

"OO语言的问题是,它们会拉动整个环境。你想要的只是一根香蕉,但你最后却被一只大猩猩抱着那根香蕉,整个丛林也随之而来。"

Прощай, объектно-ориентированное программирование
Прощай, объектно-ориентированное программирование
  • 2005.08.16
  • habrahabr.ru
Я в течение десятилетий программировал на объектно-ориентированных языках. Первым из них стал С++, затем был Smalltalk, и наконец .NET и Java. Я фанатично использовал преимущества наследования, инкапсуляции и полиморфизма, этих трёх столпов парадигмы объектно-ориентированного программирования. Мне очень хотелось воспользоваться обещанным...
 
Andrei:

"OO语言的问题是,它们会拉动整个环境。你想要的只是一根香蕉,但你最后却被一只大猩猩抱着那根香蕉,整个丛林也随之而来。"

这就对了。这是一个很好的比喻!

但这是一个问题吗?相反,这是OOP的一个优势 !

因为不存在 "只是一根香蕉 "的说法。对香蕉来说--你需要一棵棕榈树,对棕榈树来说--你需要一种营养介质,顺便说一句,一只大猩猩会爬上那棵棕榈树,得到那根香蕉。

在我看来,你不去想这些是很好的,但是拿着这根非常的香蕉,吃下去。

P.S.

我读了这篇文章--它说的都是对的,但只是所有这些论点让我相信--OOP是一项伟大的技术,比FP好得多。只是,在使用它的时候,我们必须遵循一些规则,我们不应该遵循在FP。但这根本不是拒绝OOP的理由。在我看来,文章中的所有论点都在相反地证明OOP的优势,他们只是警告说 "用刀时要小心"。

通过使用电器而不是机械电器--你也在遵守一些规则,这在以前是不需要的,这是真的。但这并不是放弃电器的理由 !

 

这段对话让我想起了肥皂剧中的一个小品(说到女人,你好,Wolchansky)。

-------------------------------------

前妻打电话给前夫要求见面。

BJ: 你能想象吗,我们的女儿怀孕了 !而且她才19岁,她要学习,要上大学!!。

BM:你在说什么?!!!!她怀的是谁?

为什么没有人知道?我不知道...哦,会发生什么,会发生什么......。

BM:这个无赖躲起来了,不愿意承认这个孩子?

不,他没有躲起来,想象一下,我们的女儿要嫁给他了!!。我们该怎么办,她刚从高中毕业!!!!。

BM: ....???

Bj:你为什么不说话,你为什么不说话!!!。你不明白吗?我们的女儿怀孕了!!。她要结婚了!!!明白吗?

BM:嗯...我明白了...但是...我没有看到这里的问题...你在18岁时怀孕并嫁给我,生下她...而这并没有什么错...

-------------------------------------

这里的情况就是这样--我被证明了美国共和党的巨大缺点和问题,而我却心不在焉地不认为是问题,许多人反而认为是优点......

你怎么会达到那种开悟的地步,让你看到小心翼翼地用刀是 OOP的弊端超过了优点?

 

这是 "发达 "国家人口状况的原因之一--首先你毕业了,然后你安排你的生活,支付抵押贷款......然后你对孩子不感兴趣,只要没有人碰你。

 
George Merts:

因为'只是一根香蕉'是不会发生的。香蕉需要一棵棕榈树,棕榈树需要一种营养介质,顺便说一句,一只大猩猩爬上那棵棕榈树,得到那根香蕉。

在我看来,你不去想这些是很好的,但是拿着这根非常的香蕉,吃下去。

不,这不是问题的关键。按照方案的逻辑,有一根香蕉可以吃,但你必须把棕榈和带有粪便的黑土一起吃掉。

 
Andrei:

"OO语言的问题是,它们会拉动整个环境。你想要的只是一根香蕉,但最后却有一只大猩猩拿着那根香蕉,整个 丛林都是它。"

这篇文章 在说谎!

就基类的拥有者而言,它是按计划进行的。而且它通过了所有的自动测试。但主人并没有注意到派生类。而派生类的所有者则大失所望。现在 ArrayCount addAll()调用父类的 addAll(),后者在内部调用 add()该控件已经被派生类重写。因此,每次调用派生类的 add()时,计数器都会 递增,然后根据派生类的 addAll()所添加的元素数量再次递增 因此,元素被收集了两次

当我读到这句话时,我变得非常犹豫不决。迅速翻身,检查我的头没有被弄乱。

class ArrayList
{
public:
  void add( int )
  {
    Print(__FUNCSIG__);
  }  
};

class Array
{
private:
  ArrayList a;

public:      
  void add( int element )
  {
    Print(__FUNCSIG__);
    this.a.add(element);
  }
 
  void addAll( const int &elements[] )
  {
    for (int i = 0; i < ArraySize(elements); i++)
//      this.a.add(elements[i]);
      add(elements[i]);
  }
};

class ArrayCount : public Array
{
public:
  int count;

  ArrayCount() : count(0)
  {
  }

  void add( int element )
  {
    Array::add(element);
    
    ++this.count;
  }
    
  void addAll( const int &elements[] )
  {
    Array::addAll(elements);
    count += ArraySize(elements);
  }
};

void OnStart()
{  
  int Tmp[5];
 
  ArrayCount Count;
 
  Count.addAll(Tmp);
  Print(Count.count);
}

我强调了文章作者建议修改的那几句。替换它们并不影响结果。我没有阅读文章的其余部分。作者的胡言乱语可能在评论中被指出了。

Прощай, объектно-ориентированное программирование
Прощай, объектно-ориентированное программирование
  • 2005.08.16
  • habrahabr.ru
Я в течение десятилетий программировал на объектно-ориентированных языках. Первым из них стал С++, затем был Smalltalk, и наконец .NET и Java. Я фанатично использовал преимущества наследования, инкапсуляции и полиморфизма, этих трёх столпов парадигмы объектно-ориентированного программирования. Мне очень хотелось воспользоваться обещанным...
 
George Merts:

这就对了。好的比喻 !

但这是一个问题吗?相反,这是OOP的一个优势 !

对正常人来说是折磨,对受虐狂来说是快乐......。:)

 
fxsaber:

这篇文章 在说谎!

这有什么区别呢?

你需要论证你的主张(OOP很烂)--谷歌 "OOP "和几个负面的品质,得到一个更好的文章,并在不阅读的情况下,把它贴到论坛上。

真实或不真实--并不重要。这并不重要,如果它是真的或假的。如果有像你这样细心的人愿意费心阅读和检查,你可以用同样的方式再扔一篇文章。

 
Я — функциональщик. Прекрасно себя чувствую. Это ты от ООП такой раздражительный.