• 对象的存在是因为别人要用它


    标题的意思是,对象之所以单独成为一个概念,而不是只是系统内部的实现细节,那是因为很多人需要调用它。

    因此,对象的存在是因为被需要,如果没有人调用它,他就可以作为实现细节,从外观上消失。

    比如一个超市的管理系统,为什么要有商品,为什么要有收银员,是因为老板需要经常查看这些信息,所以他成为一个独立的概念,是有意义的。

    现实需求中,有很多实体对象,如果要一花一木都描述出来,那么就非常辛苦。有些人害怕自己不够面向对象,就迷恋不断的创建概念对象出来,这样会很累。如果你觉得自己很懒,觉得没必要对外开放一个独立的概念,就可以作为一个实现细节。虽然只有一个对象,而没有对象联系的系统是不可思议的,但是从理论角度,这也是面向对象,没必要说一定要很多对象,复杂的交互才是面向对象。

    对于一个系统来说,设计复杂的对象关系是一件很辛苦的事情,有时候比实现细节还要麻烦,细节大不了你不爽了就改一改,这个在原型开发的时候也是很容易的,但是对象关系,如果不仔细调整,他成为外部概念后,就对整个系统,乃至将来的设计产生深远的影响,要知道一个错误的设计,比一个没有设计更加烦人。

    对于原型开发来说,我认为除非你已经很了解业务,否则还是尽量先做好业务的算法,把整个系统了解一下,再来慢慢思考怎样的设计布局更加合理,更具扩展性。设计中的对象,并不一定等价于现实中的对象,现实中的对象你是按照重要性来排序的,而程序中的对象,你是按照他对其他对象的依赖性质来排序的,和系统其他对象越紧密的对象,越重要。现实生活中老板是你第一个要服侍好的对象,但是程序中可能就是收银机,因为顾客,收银员,商品都和他勾搭上了。我的意思是,生活中很重要的一些对象,在程序中也许只是一个字段就能表示的简单概念。

    一些简单的想法,泛泛而谈。请大家有空留言一下。

  • 相关阅读:
    [PHP] class_exists类不存在时会调用__autoload函数
    [Redis] Redis的消息机制- 发布订阅
    [发电] 现在正式入驻爱发电平台
    [MySQL] PHP IP登录限制的实现
    [Redis] 哈希表的Rehash机制
    [Redis] redis的hash类型底层结构哈希表
    [Linux] ls命令的几个常用参数实现按时间/文件大小排序
    [Go] 在gin框架gorm下查询一对多的数据
    [Redis] list底层的数据结构
    [GO]go redis实现滑动窗口限流-redis版
  • 原文地址:https://www.cnblogs.com/Nobel/p/2046529.html
Copyright © 2020-2023  润新知