zoukankan      html  css  js  c++  java
  • 不要滥用面向对象,写出难以阅读和修改的代码

     

    笔者参与过一些完全以面向对象为设计思想的项目,不过感觉都不太好,例如,它们往往有非常之多的硬编码和隐藏的逻辑,导致小小的修改往往会出现意外的问题;因为对象调用跳转太多,代码也很难阅读和修改,调用关系很难理解。

     

    个人认为,这不但是写代码的人不注意的问题,而是面向对象这种方法,鼓励了非常之不好的代码写法:

    1. 违反封装隔离的原则:面向对象倾向于将所有函数都定义为内部函数,不喜欢将函数独立出来,函数需要的变量都定义为对象的内部变量,于是很多人开始写出这样的代码:所有的成员函数基本没有什么参数,执行时候不知道在干什么,在依赖哪些变量,改变哪些变量。

    2. 太多对象使得问题复杂化:不断地new对象,还用了各种虚方法,就是为了解决一些简单的问题,导致不知道究竟调用了哪些方法。这些问题不如直接switch case简单。

    3. 每个对象都在重复做相同的事情:写死了框架,极其复杂笨重,创建了太多对象,每个对象都不知道在干什么,而且能传的参数太少,后期修改时候,太复杂不敢改框架,于是乎开始写死各种代码逻辑。

    改进的方法:

    一:写比较内敛的代码:比如能用函数解决的问题,不要用对象的继承和虚函数;需要的参数尽量在函数参数内传入;状态尽量在函数内部流转,不要牵涉到外部的变量。

    二:面向数据来设计框架,统一数据的处理,而不是用更多的对象来解决数据异化的问题。

  • 相关阅读:
    Automatic Account Determination
    'BAPI_REQUIREMENTS_CREATE' 创建月需求计划(MD61)
    Bapi_Quotation_Createfromdata2VA21
    SAP系统拷贝 UNIX + Oracle
    SAP NotesBW
    BAPI_SALESORDER_CREATEFROMDAT2VA01
    SAP Note 449891 Temporary database objects in BW 3.x
    BAPI_GOODSMVT_CREATE mb01,mb1A
    BAPI_SALESDOCU_CREATEFROMDATA1VA01
    Optimizing performance of ODS objects(来自sap notes 384023)
  • 原文地址:https://www.cnblogs.com/dearplain/p/8971457.html
Copyright © 2011-2022 走看看