zoukankan      html  css  js  c++  java
  • 怎么继续程序员这条路

    回想起来,好久没这样安静的思考过了。 
    只有在面试失败的时候,才会清楚的看到自己的不足。
    放弃了现有的工作,跑到了广州,不知道是为待遇,还是为技术,还是为以后程序员的路。
    用c#做了8个月的企业站,到最后有点象流水线了,栏目一样,模板一套,一个网站就出来了。
    虽说代码不是刚出道那样子了,但是一味的模仿开始了。
    开始照搬petshop,开始模仿它写项目,没搞清出它的优劣就开始了。
    直到面试受挫才知道自己只会照着模式来做,说不出为什么要那样做,在什么情况下要那样做,哎!理论和实践严重脱节。

    下面是最常见的面试题,也是最经典的,也是最难说清楚的。

    1,请问抽象类和接口有什么区别,在程序开发中什么情况下用?
    今天我栽在上面了,baidu 了下,下面这个答案感觉不错。

    “1、接口可以多重继承,抽象类只能单一继承。
    2、接口只有方法,属性的定义。抽象类可以包含方法体。
    抽象类中有抽象成员和非抽象成员(和普通类成员一样),而接口的所有成员都必须在实现接口的代码类中实现。抽象类可以有自己的字段,但是接口不能有自己的字段,构造函数,析造函数,静态成员或常量。从用途上来说,抽象类主要是提供为对象系列的基类,共享一些主要特性,使继承于一个抽象类的对象都具有一个共同的目的或者结构。(所以我们可以把抽象类看成是对对象的一个特性)。

    接口主要是为一批类提供一些相同,而有必须实现的任务。实现同一个接口的一批类,就会强制的实现一些必须实现的接口成员,使编写更规范。(所以我们可以把接口看成是对类的一个特性)。

    举一个例子来看:手提电脑和台式电脑都可以由一个抽象类来派生,这个抽象类具有电脑的某些特性,比如内存的型号,大小,电源要求等。这些特性是和具体的对象有关,我们需要从电脑来派生出我们自己的膝上电脑和台式电脑类。
    但是无论是什么电脑他们都会有些相同的目的,比如编写程序,拽写文档,打游戏等。我们可以为这些派生的类指定一个接口,以便他们都能实现这些相同目的的功能,例如游戏功能IgameInterface。”


    “从有业务逻辑的设计来考虑的话,有这样的情况可以用接口来实现:
    归结你业务的共性把它抽象出来,作成接口,用户只和基础类的接口打交道是最好的,而具体的实现和用户没有关系。(这里的用户指应用基础类的程序员。)
    比如 甲、乙 两个模块,它们有共同的操作,save,update,delete 等,在这些操作中甲,乙大体的逻辑是相同的,但还是会有一些差异。
    个人认为这样来实现比较合理:
    定义一个接口 allProcess 定义这些方法 save,update,delete 等,
    processClass实现allProcess接口,把 甲、乙两模块的逻辑相同的操作实现。
    甲类 和 乙类继承processClass 把差异的逻辑实现。
    用个管理类把甲类 和 乙类上朔造型成allProcess给用户,用户只需用allProcess的方法就可以了,甲和乙同是 allProcess的save()但分别做的是公共的逻辑加上甲的逻辑和乙的逻辑。
    这样做的好处是基础类对用户是透明的,动作与实现无关。 代码不重复。
    接口还用来实现多继承,这点也很重要。”


    2,请问有哪些设计模式,说说你熟悉的几种,说说他们的实现原理?
    “设计模式答案可以参考TerryLee's Tech Space.NET设计模式系列文章
    http://terrylee.cnblogs.com/archive/2006/06/01/334911.html

    哎,最后接受大家的批评,一个还想在程序路上走几年的人。

    噢耶游戏是中国最大的轻社交游戏开发商,致力于手机页游的研发及推广业务。我们首创性地提出了HTML5游戏中心思路,在第三方App 中嵌入式休闲游戏,为开发者提供了全新的应用内游戏解决方案。
  • 相关阅读:
    SQLSERVER排查CPU占用高的情况
    bootstrap布局两列或者多列表单
    ASP.NET Redis 开发
    .NET 环境中使用RabbitMQ
    EasyNetQ介绍
    .Net使用RabbitMQ详解
    ASp.net中Froms验证方式
    全国-城市-百度地图中心点坐标
    IIS7.0下 HTTP 错误 404.15
    asp.net报错“尝试读取或写入受保护的内存。这通常指示其他内存已损坏”的解决办法
  • 原文地址:https://www.cnblogs.com/yintian2/p/864398.html
Copyright © 2011-2022 走看看