I reviewed and identified parts of your code that can be improved by applying design patterns, such as:
Factory Method (Creational):
This pattern was chosen because it involves creating two subclasses that inherit from the superclass. The Factory Method is a creational design pattern that provides an interface for creating objects in a superclass while allowing subclasses to alter the type of objects that will be created. In this case, since we have a Conta class that has two subclasses, ContaCorrente and ContaInvestimento, it is advisable to use this design pattern.
![Creacional (1)](https://private-user-images.githubusercontent.com/117035800/353308598-273af525-f4c2-419e-94a6-dc7d0e60120d.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM3Nzc0MjcsIm5iZiI6MTcyMzc3NzEyNywicGF0aCI6Ii8xMTcwMzU4MDAvMzUzMzA4NTk4LTI3M2FmNTI1LWY0YzItNDE5ZS05NGE2LWRjN2QwZTYwMTIwZC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODE2JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgxNlQwMjU4NDdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT00MTQzZmI4M2NlM2EzMThlNjZhY2MzZDI1YmE5MjZkYWY0ZDk4NzMyYjFjYmRlMDNhODhmN2QyMGY1OWNiYzIxJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.jJIfL4YIFWMl2IlXCDzIsrNMHCj3K-GcdOK6kxcvNTc)
Decorator (Structural):
The Decorator pattern is used to add functionalities to objects by placing these objects inside other objects, encapsulating these special objects with their functionalities. In this code, this design pattern can be implemented in the Conta class to add functionalities either in the short or long term. We can add more functionalities to the Conta class, such as setting transaction limits and other features.
![Decorator (1)](https://private-user-images.githubusercontent.com/117035800/353308658-1b6c9f0c-e169-4926-8c6a-f9e5ac76da5b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM3Nzc0MjcsIm5iZiI6MTcyMzc3NzEyNywicGF0aCI6Ii8xMTcwMzU4MDAvMzUzMzA4NjU4LTFiNmM5ZjBjLWUxNjktNDkyNi04YzZhLWY5ZTVhYzc2ZGE1Yi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODE2JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgxNlQwMjU4NDdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT05NTM5N2RmMDI2M2MxNzdlMTZjYWYzZWIwNmU4YzUwMjkwMjgyZGQxYWI4ODhiNzk4NDNiOWJkOGFkMTExOTU3JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.Tp2ROPHzEM8wo6TEYhn86npev23rMp8S4XMd53FAdpc)
Observer (Behavioral):
This design pattern is used when you want to notify about a change or event that happens to an object, and this notification is sent to the object that observes it. In the context of the code, we can see that the Conta class has two methods, deposita() and saca(). These methods are responsible for updating the user's account state. To obtain the account balance, there is getSaldo(), and the rest of the methods provide additional information. With the Observer design pattern, the Cliente will observe the Conta, and the former will be notified whenever a change or action occurs in the account.
![Observable](https://private-user-images.githubusercontent.com/117035800/353308676-78ae6d9b-d539-4048-8753-f3f52888f487.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM3Nzc0MjcsIm5iZiI6MTcyMzc3NzEyNywicGF0aCI6Ii8xMTcwMzU4MDAvMzUzMzA4Njc2LTc4YWU2ZDliLWQ1MzktNDA0OC04NzUzLWYzZjUyODg4ZjQ4Ny5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODE2JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgxNlQwMjU4NDdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT02MTlkZDU3MGNjZTFiMGQ4ZDU0YzkwNjY5YWJiZjRhYmI3OTJhZjEzZmYyMTc2OGM0MmY1ZWI0NGU1MDc5ZDdhJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.Ss9QIFef9PKnwRspjq2FaT0w8Gs3s5-6czXmPYtvTGI)
(This is for a homework btw)