samedi 16 avril 2022

I want a class A to use a method of class B, and I want a method of class A be used by class B

I'm doing a little project for school where I try to do a spreadsheet program, and I have two classes, I will be simplifying this with pseudocode a little bit so it's not too messy.

class DocumentController {
    Document doc //This is a class with a CRUD on a document (It haves Sheets and every Sheet haves a Table full of Cells)
    Parser p

    getValueOfCell (sheetName, positionX, positionY) {
         returns value of a cell in a sheet in the position x,y
    }
    
    setCell (String expression, sheetName, positionX, positionY) {
         //Somewhere here we need to use p.evaluate()
    }
 
}

class Parser {
    DocumentController docController;
    evaluate (expression: String) {
        //Somewhere here, I need to use method getCell from Document for evaluating the  expression (The expressions have references to other cells so the Parser need to resolve these references)
        ...
        return value of the expression (float, integer, string, whatever)
    }
}

So apparently my teacher said to me that this is a bad design, because these classes are too coupled and this is a code smell. Can someone explain me why is this so bad? How can I make a better design?

Thank you, sorry if I made some typos or the code is not legible

Aucun commentaire:

Enregistrer un commentaire