refactor: Controller使用sigleton,避免多次创建对象

This commit is contained in:
songdragon 2023-08-19 11:11:06 +08:00
parent c014a72ace
commit b2676f861f
5 changed files with 19 additions and 9 deletions

View File

@ -23,7 +23,7 @@ public class LunchApp extends Application {
private static final ExecutorService threadPool = Executors.newCachedThreadPool(); private static final ExecutorService threadPool = Executors.newCachedThreadPool();
public static boolean isRelevance = true; public static boolean isRelevance = true;
Controller controller = new Controller(); Controller controller = Controller.getInstance();
View view; View view;

View File

@ -23,7 +23,7 @@ public class NewFile implements EventHandler<ActionEvent> {
@Override @Override
public void handle(ActionEvent event) { public void handle(ActionEvent event) {
// 获取控制器 // 获取控制器
Controller controller = new Controller(); Controller controller = Controller.getInstance();
// 创建一个新的文本编辑区 // 创建一个新的文本编辑区
TextArea textArea = new TextArea(); TextArea textArea = new TextArea();

View File

@ -25,7 +25,7 @@ public class OpenFile implements EventHandler<ActionEvent> {
@Override @Override
public void handle(ActionEvent event) { public void handle(ActionEvent event) {
// 获取控制器 // 获取控制器
Controller controller = new Controller(); Controller controller = Controller.getInstance();
// 创建文件选择器 // 创建文件选择器
FileChooser fileChooser = new FileChooser(); FileChooser fileChooser = new FileChooser();
// 显示文件选择对话框并获取选中的文件 // 显示文件选择对话框并获取选中的文件

View File

@ -26,6 +26,16 @@ import java.util.List;
*/ */
public class Controller implements ControllerInterface { public class Controller implements ControllerInterface {
private static final Controller INSTANCE = new Controller();
private Controller() {
}
public static Controller getInstance() {
return INSTANCE;
}
/** /**
* 打开关联文件并创建文本区域 * 打开关联文件并创建文本区域
* *
@ -271,7 +281,7 @@ public class Controller implements ControllerInterface {
TextArea textArea = new TextArea(); TextArea textArea = new TextArea();
textArea.setStyle( textArea.setStyle(
"-fx-border-color:white;" + "-fx-border-color:white;" +
"-fx-background-color:white" "-fx-background-color:white"
); );
return textArea; return textArea;
} }

View File

@ -21,17 +21,17 @@ public class View {
public void initItem() { public void initItem() {
// 初始化菜单项的事件处理器 // 初始化菜单项的事件处理器
EventHandler<ActionEvent> newFileEventHandler = new Controller().getNewFileEventHandler(new TextArea()); EventHandler<ActionEvent> newFileEventHandler = Controller.getInstance().getNewFileEventHandler(new TextArea());
newItem.setOnAction(newFileEventHandler); newItem.setOnAction(newFileEventHandler);
EventHandler<ActionEvent> openFileEventHandler = new Controller().getOpenFileEventHandler(); EventHandler<ActionEvent> openFileEventHandler = Controller.getInstance().getOpenFileEventHandler();
openItem.setOnAction(openFileEventHandler); openItem.setOnAction(openFileEventHandler);
EventHandler<ActionEvent> saveAsFileEventHandler = new Controller().getSaveAsFileEventHandler(); EventHandler<ActionEvent> saveAsFileEventHandler = Controller.getInstance().getSaveAsFileEventHandler();
saveAsItem.setOnAction(saveAsFileEventHandler); saveAsItem.setOnAction(saveAsFileEventHandler);
lineFeedItem.setOnAction(new Controller().getLineFeedEventHandler(new TextArea())); lineFeedItem.setOnAction(Controller.getInstance().getLineFeedEventHandler(new TextArea()));
} }
public void initTabPane() { public void initTabPane() {
new Controller().initTabPane(); Controller.getInstance().initTabPane();
} }
// 初始化快捷键 // 初始化快捷键