怎么训练自己的编程思维转为面向对象? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
waiaan
V2EX    问与答

怎么训练自己的编程思维转为面向对象?

  •  
  •   waiaan 2019-04-30 09:23:07 +08:00 3484 次点击
    这是一个创建于 2385 天前的主题,其中的信息可能已经有所发展或是发生改变。

    面向对象、函数式编程这类的思维方式要怎么培养或者训练? 谢谢!

    18 条回复    2019-11-04 17:22:05 +08:00
    vindurriel
        1
    vindurriel  
       2019-04-30 09:33:44 +08:00 via iPhone
    首先你要有一个对象 然后需要做的就是面向他(她它)
    Cbdy
        2
    Cbdy  
       2019-04-30 09:36:07 +08:00
    《面向对象分析与设计》,Grady Booch
    whypool
        3
    whypool  
       2019-04-30 09:36:14 +08:00
    用 oop 语言
    kzfile
        4
    kzfile  
       2019-04-30 09:49:57 +08:00   1
    这个东西,当你真正需要的时候,就会深刻理解.在学校里,尽管我学了一些,写了不少,但我还是不明白为什么要面向对象,什么时候需要面向对象.
    shylockhg
        5
    shylockhg  
       2019-04-30 09:51:18 +08:00
    用 c 语言写可锻炼
    fengyj
        6
    fengyj  
       2019-04-30 09:52:08 +08:00 via Android
    @shylockhg cpp 和 Java 比 c 合适多了。
    zhazi
        7
    zhazi  
       2019-04-30 11:15:24 +08:00
    s.o.l.i.d
    面向对象分析与设计 里面知识太松散了
    清晰架构
    领域驱动设计
    敏捷软件开发
    这几本书看下来算是有基本认识了
    经验还是要考实战啊
    jiangzhizhou
        8
    jiangzhizhou  
       2019-04-30 11:17:15 +08:00
    大公司做个 Intern 就什么都会了。
    impl
        9
    impl  
       2019-04-30 13:07:14 +08:00 via Android   2
    现在的趋势不是都开始去对象了吗,参考 go 或 rust
    whileFalse
        10
    whileFalse  
       2019-04-30 13:41:27 +08:00
    多写,多改。
    J0G57faC6uPo75W0
        11
    J0G57faC6uPo75W0  
       2019-04-30 14:05:56 +08:00 via Android
    在冯诺依曼架构上,一切都是面向过程的,指令按行执行。

    面向对象是对数据的访问方式加了层抽象,只有类才是第一成员,其他都是弟弟。一切都是 名词. 这种脑残的设定,再加上疯狂的营销,愣是把对的说成错的。不然也不会出现设计模式这种复杂的东西。

    你使用一些纯 oop 的语言,过段时间就好了,比如 java c#,加油。

    正方辩手发言完毕。
    dfjslkjdf
        12
    dfjslkjdf  
       2019-04-30 14:07:39 +08:00
    面向对象就是模拟现实世界,不需要刻意培养,
    而是要培养怎么用代码表达现实世界的能力。
    SpiderShrimp
        13
    SpiderShrimp  
       2019-04-30 15:27:46 +08:00
    ipwx
        14
    ipwx  
       2019-04-30 15:34:39 +08:00
    其实面向对象是个太纯粹的概念。现代编程语言或多或少都是混合式的编程方法,比如 Java 8 已经是 OOP + FP 了。

    我的建议是,不要想太多,多学习你主力语言优秀的库,多体会他们的 tutorial 的编程范式,然后去写点不小的练习项目。就会了。

    顺爱每个语言,甚至统一语言的不同类库,都有不太一样的编程范式。你一定要去适应这种不同,而不是用你自己统一的编程范式去用各个类库。后者是吃力不讨好的,因为你为了统一范式,很可能需要给每个类库写一套 wrpper api,而且你自己的 wrapper api 很可能反而比不上原始的范式方便清晰。
    ipwx
        15
    ipwx  
       2019-04-30 15:35:45 +08:00
    顺便提醒一点,为了体会最精粹的每个类库的编程范式,千万从官方文档开始看。不要看中文博客的内容,不要看别人咀嚼过一遍留下的残渣。那种文章很可能代入了作者自己的范式,反而落了下成。
    oaix
        16
    oaix  
       2019-04-30 16:20:42 +08:00
    把 if 语句改为多态实现
    miao666
        17
    miao666  
       2019-04-30 16:26:44 +08:00
    学 java,真正的语言
    大厂的作品,稳定运行
    高深的概念,不写都行
    chunhua20
        18
    chunhua20  
       2019-11-04 17:22:05 +08:00
    @zhazi 设计模式和 DDD 哪个先学捏?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     822 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 22:00 PVG 06:00 LAX 14:00 JFK 17:00
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86