• 光明
    2018-01-30
    文章太好了,赞👍
    
     12
  • 拉欧
    2019-05-27
    面向对象编程,一是抽象思维,把数据和算法抽象成类和对象;二是标准化,接口即协议,所有的实现类都要满足定义的接口才可以作为依赖;三是封装,对象之间通过接口调用,互相之间不关心彼此的细节;总之,接口的定义是否清晰是面向对象设计的关键;
    由于对象内封装了状态,所以在并发环境下天然存在问题
    
     6
  • 连子
    2018-04-14
    领域建模啥时候讲讲?
    
     4
  • fsj
    2018-04-05
    示例三中的代码感觉使用了RAII技术也很丑陋;控制反转挺难理解的,但是我觉得更难的是识别出哪里需要控制反转

    作者回复: 求不丑陋的例子

    
     4
  • Join
    2018-02-28
    刚好今天代码里用到了IOC/DI,这时候看下文章太有感觉了,有补充了新的知识,谢谢皓子叔
    
     4
  • 瀚海星尘
    2019-07-15
    IoC/DIP的思想真是酷啊!!!
    
     3
  • 七月有风
    2019-05-20
    老师,您好,RAII 那段代码在C++中可以那样去实现,在JavaScript中有没有替代方案,最近就有这个问题,一直没找到很好的解决方案。请老师回复。
    
     3
  • slark
    2020-01-07
    面向对象从了解时候感觉很自然,通过类封装数据,对外只暴露接口,只要接口不变,底层实现可以进行更新,同时通过继承和多态,适应了动态场景。但函数式编程里就不需要了么?期待后续说明
    
     1
  • 业余爱好者
    2019-10-12
    本文的控制反转似乎和spring中的控制反转不是一回事?
    
     1
  • edisonhuang
    2019-06-24
    面向对象的编程有三大特性:封装、继承和多态
    相比于函数式编程更强调动作,面向对象则更强调名词。它更符合我们人类的思考模式,将数据封装在对象之中
    面向对象强调两点,一是面向接口而非面向实现编程。二是偏向使用组合而非继承。
    通过面向对象的方法,实现控制反转个依赖导致。对于底层的服务更多的是实现标准的协议,同时将协议开放出来提供给其他系统订阅 。而基于协议需要做怎样的具体操作,则交给其他系统以及来决策
    
     1
  • Valen
    2019-05-30
    @xilie 关于会员等级与多个业务特权对应的问题, 想了下可以用控制反转的方法. 就是抽出一个 等级<->特权 的标准出来, 向外提供 类似 `getPrivileges(level)`, `havePrivilege(privilege, level)` 的接口, 然后会员等级系统和业务系统都依赖于这个标准. 有变动的话就直接改这个标准就行
    
     1
  • xilie
    2019-04-24
    有个面向对象的设计问题求解:

    背景:1、有会员等级系统,等级级别分类需要由运营情况来定可伸缩,并不固定;2、好几个业务系统,跟进会员等级,给予不同的会员权利;

    问题:如果会员等级系统只提供接口,业务系统使用,这样虽然会员等级系统很干净,可是一旦会员等级系统的级别分类变化,各业务系统得对应开发。而如果换个方式,业务系统注入不同等级的会员权利,会员等级系统就很不干净,而且各业务系统注入的会员等级可能不一致,造成混乱。

    不像开关,只有开和关,固定不变,会员等级系统内的等级级别会变化,怎么解决呢?
    展开
     1
     1
  • 宋桓公
    2018-08-17
    我觉得面向对象最有用的是多态
    
     1
  • Freezer
    2018-01-31
    耗子神,更新的太慢了,求加餐啊🙏🙏🙏
    
     1
  • RZ_diversity
    2018-01-31
    看过后,对本科学的C++有了新的认识,需要反复领会其中的知识点
    
     1
  • 毛尖好喝
    2020-01-14
    抽丝剥茧
    
    
我们在线,来聊聊吧