Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Refactor] Memory optimizing with OOP Refactoring #11

Merged
merged 7 commits into from
Mar 19, 2024

Conversation

Hyeon-Uk
Copy link
Owner

  • according to Single Responsibility Principle in Object Oriented Programming Principles, They must have only their responsibility.

  • so seperate responsibility and Use IOC&DI with interface

Hyeon-Uk and others added 7 commits January 17, 2024 00:27
* [Feat] Optimize UI (#3)

- Disable closing `support window`
- Layout setting according to the position of the toolWindow
- Embed console view on `Result Area`
- Refactoring for Clean Code and Object-oriented Coding

* [Fix] Verification error (#5)

Fixed an error that failed verification due to carriage return characters by deleting all carriage return characters.

Signed-off-by: Hyeon-Uk <[email protected]>
- according to BOJ's public homepage, this feature is not available because Baekjun has banned scraping.
- Components in EditorPanel uses same instance, such as `JLabel` and `JBorder`
- These components are immutable objects, so by creating one and sharing it, we can save memory.
- So, I apply Flyweight pattern

Signed-off-by: Hyeon-Uk <[email protected]>
- according to Single Responsibility Principle in `Object Oriented Programming Principles`, They must have only their responsibility.

- so seperate responsibility and Use IOC&DI with interface
@Hyeon-Uk Hyeon-Uk merged commit 0147146 into develop/v1.0.3 Mar 19, 2024
Hyeon-Uk added a commit that referenced this pull request May 11, 2024
* [Refactor] Memory optimizing with OOP Refactoring (#11)

* [Refactor] Apply Flyweight Pattern for UI Memory Optimization

- Components in EditorPanel uses same instance, such as `JLabel` and `JBorder`
- These components are immutable objects, so by creating one and sharing it, we can save memory.
- So, I apply Flyweight pattern

* [Refactor] Seperate Component with responsibility

- according to Single Responsibility Principle in `Object Oriented Programming Principles`, They must have only their responsibility.

- so seperate responsibility and Use IOC&DI with interface

* [Feat] Add `remove all action`

* [Refactor] Remove ToolbarPanel Dependency in mainViewPanel

In mainView, toolbarPanel is not neccessary. so remove it.

* [Refactor] Change ThreadStore's Creational Patterns, Singleton to Normal Object

for making tests easier

* [Refactor] Restructure to Enable DI in ToolWindowFactory and Remove Singleton Pattern

* [Test] Add Action Tests

- AddTest
- RemoveAllTest
- RemoveTest
- RunAllTest
- RunTest
- StopAllTest

* [Refactor] Remove dependencies each editor components from EditorPanel using interface and abstract class

* [Test] Adding EditorPanel tests

* [Test] Adding MyTestList tests

* [Refactor] Remove dependencies subTestList from TestListPanel using interface and abstract class

* [Test] Adding TestListPanel tests

* [Test] Adding MainView tests

---------

Signed-off-by: Hyeon-Uk <[email protected]>
@Hyeon-Uk Hyeon-Uk mentioned this pull request May 11, 2024
Hyeon-Uk added a commit that referenced this pull request May 11, 2024
* [Refactor] Memory optimizing with OOP Refactoring (#11)

* [Refactor] Apply Flyweight Pattern for UI Memory Optimization

- Components in EditorPanel uses same instance, such as `JLabel` and `JBorder`
- These components are immutable objects, so by creating one and sharing it, we can save memory.
- So, I apply Flyweight pattern

* [Refactor] Seperate Component with responsibility

- according to Single Responsibility Principle in `Object Oriented Programming Principles`, They must have only their responsibility.

- so seperate responsibility and Use IOC&DI with interface

* [Feat] Add `remove all action`

* [Refactor] Remove ToolbarPanel Dependency in mainViewPanel

In mainView, toolbarPanel is not neccessary. so remove it.

* [Refactor] Change ThreadStore's Creational Patterns, Singleton to Normal Object

for making tests easier

* [Refactor] Restructure to Enable DI in ToolWindowFactory and Remove Singleton Pattern

* [Test] Add Action Tests

- AddTest
- RemoveAllTest
- RemoveTest
- RunAllTest
- RunTest
- StopAllTest

* [Refactor] Remove dependencies each editor components from EditorPanel using interface and abstract class

* [Test] Adding EditorPanel tests

* [Test] Adding MyTestList tests

* [Refactor] Remove dependencies subTestList from TestListPanel using interface and abstract class

* [Test] Adding TestListPanel tests

* [Test] Adding MainView tests

---------

Signed-off-by: Hyeon-Uk <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant