zoukankan      html  css  js  c++  java
  • 我眼中的面向对象

    近日又风闻诸如贫血不能很好的做面向对象,用服务就不算面向对象之类的言语,有些想法,下面我说下我对面向对象的想法,希望大家
    指证。

    我觉得面向对象应该是一种开发的指导思想,是用代码去模拟现实世界,用程序去表述业务,只要是以这种思想为指导开发的即可认为是
    面向对象开发;而不是狭隘的一种写法,不能说怎么写是面向对象怎么写不是,将思想和写法等同比较,我认为这种想法是不合逻辑的,对
    象只是对现实必要的抽象,如果非要说对象必须充血才算面向对象,那当业务抽象不需要属性或动作时,就不能算是面向对象了么?


    一个典型就是服务,一个服务应当是对一类业务提供支持,那这个服务就充当了动作接口的实现,甚至于可以充当这类业务动作的主体,
    比如说一个人拥有读书的动作:person.ReadBook,现在变成了实现了这个ReadBook的方法变成了服务,怎么就不面向对象了,甚至于极端情
    况下,这个人没有任何其他职责,对于业务也不需要提供任何属性,那我就让服务充当人的实例:sevice.ReadBook,就从面向对象变成面向过
    程了么,怎么想也说不过去吧。


    至于贫血,这个更没什么好说的,存在即合理,只有垃圾的玩家没有垃圾的职业;在做项目的时候,组成人员参差不齐,进度越快越好,
    在这种情况下,将属性和动作分开定义,可以让代码看起来更清晰,让不那么认真的程序员减少改串行之类内容耦合问题引起的BUG,但这并
    不影响整个系统都是对象主体发出业务动作,通过交互来完成业务,系统依然是各个现实业务场景的模拟实现,这与做好做不好面相对象,
    没有任何逻辑关系,


    最后,当然更不能因为没达到某种效果,不具备某些优点就说不是面向对象,这没什么逻辑关系,唯物主义也有形而上,没用好不代表不
    是。

  • 相关阅读:
    WPF ListView 排序
    java视频转码博客
    stream的seek方法实例
    Metro各种流转换
    性能测试并发对比(JMeter,Locust和Gatling篇)
    MYSQL之——查询练习题
    MYSQL之——复杂查询
    MYSQL之——简单查询
    MYSQL之——基础SQL
    MySQL之——忘记root密码解决方案
  • 原文地址:https://www.cnblogs.com/saaav/p/3442805.html
Copyright © 2011-2022 走看看