zoukankan      html  css  js  c++  java
  • 再谈多态

    最近又翻了几页Design patterns, 发现在这本书中也几乎没有发现"多态"这个词,那么是多态不重要吗?
    显然不是,有关多态的介绍请见 samuel的文章

    在我的面向对象乱弹中,我竟然只字未提多态,实在是罪过.但是仔细想想你在 Design patterns ,agile software develop
    中见过多态这个词吗? why?

    我认为多态只是一项语言的技术,本身对于建模,和看待问题并没有什么作用.也就是更多的说来,它是在实现层 (implement level)
    的一个概念.我们在建模的时候不能过早的深入到实现层,那样就会只见树木,不见森林.所以在书中,这个词并不常见.
    然而,多态的使用在这些书中又是屡见不鲜. 那么在概念层(concept level)又是如何描述多态的呢.
    我认为   隐藏变化 ,依赖反转,封闭开放原则 都是在概念层对多态的描述.难道看到这几个词,你不会想到多态吗?
    他们都是在多态的基础上实现的.

    再想想我们当初学多态的时候
    Shape shape =new Rectangle();
    Println("My shape has "+shape.getSides()+ " sides");


    你知道其中的含义吗?
    我那时只是感觉到了语言的巧妙,一点不明白为什么要这样做.其实这就是 隐藏变化

    再看看 纯爷么的template method  多态和继承很容易看到,但该模式的核心你看到了吗?

    所以说多态只是语言的特性,而在我们理解问题,分析问题,建模的时候考虑的不应该是多态,而是隐藏变化 ,依赖反转,封闭开放原则


  • 相关阅读:
    [Violet]蒲公英
    CF535-Div3
    逛公园
    exgcd
    线段树套线段树
    Luogu P2730 魔板 Magic Squares
    fhqtreap
    AtCoder Beginner Contest 115
    关于这个博客
    智障错误盘点
  • 原文地址:https://www.cnblogs.com/idior/p/80468.html
Copyright © 2011-2022 走看看