• 2011年7月21日 星期四 new


    把new弄明白
        在代码中,关键字new大家是一见如故。
     
    1、使用new的方式一
     
         我们在进行面向对象开发时,动不动就创建对象。类作为具体实例的抽象,我们当然无法去直接使用。
        作为设计师,我们需要做的就是不断的创建多个类,设计这个类的方法和属性。
        如今的软件行业更多的像是建筑业。建筑师设计好一幢建筑的模型,包括它的外观,结构,所用的素材。
        而我们的new,就是建筑领域里的工程队,为设计师设计出来的抽象创建一个个具体的,如房顶,窗户,厨房等等,最后组建成我们的系统。当然最后的建筑是否伟大,还得取决于架构师。但我们'new'朋友可以说是矜矜业业,你要创建对象,你就调用一下。在.net运行环境中,不用去担心最后对象的垃圾回收问题。
        在设计模式中,有一种很有意思的工厂模式,真如现实中工厂的原型相类似。当我们想生产饼干时,OK,你按动一下我们这个工厂中的生产饼干的开关,就可以创建了。
     
    2、使用new的方式二
     
        我们知道有了new,可以为对象很方便地创建内存空间。关键字new还有另外一种作用。
    看下面的类的关系图:
      
        学生类和教师类共同继承于Person类,但他们有共同的方法Say().
    这个时候有人会想你把基类Person中的Say加上Virtual声明为虚方法,然后在Student类中用override 修饰Say,重写一下。
        但如果Person类Say方法并未被声明为Virsual方法,那又该怎么办呢?修改Person类违背了开放和封闭原则。设计Person类的A君,不希望自己写的类被别人修改。
        好吧,想继承Person类的B君也要发言Say()一下,没办法,让我们来使用new关键字,来重新设计一个同名的方法Say()吧。
        要注意的是,B君设计的Student类中Say()方法已经和A君设计的Person类Say()毫无关系了.
     
    3、使用new的方式三
     
        new的使用还真是挺多的,别急,下面的一种用法可以说有不少初学者会忽略的。
        
        
     
     




  • 相关阅读:
    漫画图解红黑树
    HashMap原理
    从底层原理深度剖析volatile关键字
    一致性哈希算法
    OAuth2.0 授权模式详解
    RocketMQ消息的顺序、重复和事务
    正向代理 vs 反向代理
    JVM内存分配以及存储
    023_JDK8.0新特性<四>StreamAPI_4_Stream终止操作
    022_JDK8.0新特性<四>StreamAPI_3_Stream中间操作
  • 原文地址:https://www.cnblogs.com/zuifengke/p/2114969.html
Copyright © 2020-2023  润新知