From 10367bb32c5abaa3b9cf630b6d29d8377bd0828a Mon Sep 17 00:00:00 2001 From: chen-xin-zhi <3588068430@qq.com> Date: Wed, 21 May 2025 17:05:00 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=86=E6=B3=A8=E5=86=8C?= =?UTF-8?q?=E5=92=8C=E7=99=BB=E5=BD=95=E6=97=B6=E7=9A=84=E9=AA=8C=E8=AF=81?= =?UTF-8?q?=E7=A0=81=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../promotion/designModel/Client.java | 20 +++++++++++++++++++ .../promotion/designModel/Command.java | 6 ++++++ .../promotion/designModel/Controller.java | 4 ++++ .../promotion/designModel/Light.java | 8 ++++++++ .../promotion/designModel/LightOnCommand.java | 15 ++++++++++++++ .../greenorange/promotion/designModel/TV.java | 8 ++++++++ .../promotion/designModel/TVOnCommand.java | 15 ++++++++++++++ .../promotion/designModel/TestController.java | 12 +++++++++++ .../promotion/factory/Computer.java | 6 ++++++ .../promotion/factory/ComputerFactory.java | 7 +++++++ .../promotion/factory/DellComputer.java | 9 +++++++++ .../promotion/factory/DellFactory.java | 9 +++++++++ .../promotion/factory/LenovoComputer.java | 9 +++++++++ .../promotion/factory/LenovoFactory.java | 10 ++++++++++ .../promotion/factory/TestFactory.java | 19 ++++++++++++++++++ 15 files changed, 157 insertions(+) create mode 100644 src/test/java/com/greenorange/promotion/designModel/Client.java create mode 100644 src/test/java/com/greenorange/promotion/designModel/Command.java create mode 100644 src/test/java/com/greenorange/promotion/designModel/Controller.java create mode 100644 src/test/java/com/greenorange/promotion/designModel/Light.java create mode 100644 src/test/java/com/greenorange/promotion/designModel/LightOnCommand.java create mode 100644 src/test/java/com/greenorange/promotion/designModel/TV.java create mode 100644 src/test/java/com/greenorange/promotion/designModel/TVOnCommand.java create mode 100644 src/test/java/com/greenorange/promotion/designModel/TestController.java create mode 100644 src/test/java/com/greenorange/promotion/factory/Computer.java create mode 100644 src/test/java/com/greenorange/promotion/factory/ComputerFactory.java create mode 100644 src/test/java/com/greenorange/promotion/factory/DellComputer.java create mode 100644 src/test/java/com/greenorange/promotion/factory/DellFactory.java create mode 100644 src/test/java/com/greenorange/promotion/factory/LenovoComputer.java create mode 100644 src/test/java/com/greenorange/promotion/factory/LenovoFactory.java create mode 100644 src/test/java/com/greenorange/promotion/factory/TestFactory.java diff --git a/src/test/java/com/greenorange/promotion/designModel/Client.java b/src/test/java/com/greenorange/promotion/designModel/Client.java new file mode 100644 index 0000000..127ec7e --- /dev/null +++ b/src/test/java/com/greenorange/promotion/designModel/Client.java @@ -0,0 +1,20 @@ +package com.greenorange.promotion.designModel; + +public class Client { + public static void main(String[] args) { + + TestController testController = new TestController(); + + Light light = new Light(); + TV tv = new TV(); + + LightOnCommand lightOnCommand = new LightOnCommand(light); + TVOnCommand tvOnCommand = new TVOnCommand(tv); + + testController.setCommand(lightOnCommand); + testController.setCommand(tvOnCommand); + } + + + +} diff --git a/src/test/java/com/greenorange/promotion/designModel/Command.java b/src/test/java/com/greenorange/promotion/designModel/Command.java new file mode 100644 index 0000000..785629b --- /dev/null +++ b/src/test/java/com/greenorange/promotion/designModel/Command.java @@ -0,0 +1,6 @@ +package com.greenorange.promotion.designModel; + +public interface Command { + + void execute(); +} diff --git a/src/test/java/com/greenorange/promotion/designModel/Controller.java b/src/test/java/com/greenorange/promotion/designModel/Controller.java new file mode 100644 index 0000000..10830dd --- /dev/null +++ b/src/test/java/com/greenorange/promotion/designModel/Controller.java @@ -0,0 +1,4 @@ +package com.greenorange.promotion.designModel; + +public class Controller { +} diff --git a/src/test/java/com/greenorange/promotion/designModel/Light.java b/src/test/java/com/greenorange/promotion/designModel/Light.java new file mode 100644 index 0000000..8590e7a --- /dev/null +++ b/src/test/java/com/greenorange/promotion/designModel/Light.java @@ -0,0 +1,8 @@ +package com.greenorange.promotion.designModel; + +public class Light { + + public void turnOn() { + System.out.println("灯已打开"); + } +} diff --git a/src/test/java/com/greenorange/promotion/designModel/LightOnCommand.java b/src/test/java/com/greenorange/promotion/designModel/LightOnCommand.java new file mode 100644 index 0000000..97f6f54 --- /dev/null +++ b/src/test/java/com/greenorange/promotion/designModel/LightOnCommand.java @@ -0,0 +1,15 @@ +package com.greenorange.promotion.designModel; + +public class LightOnCommand implements Command{ + + private Light light; + + public LightOnCommand(Light light) { + this.light = light; + } + + @Override + public void execute() { + light.turnOn(); + } +} diff --git a/src/test/java/com/greenorange/promotion/designModel/TV.java b/src/test/java/com/greenorange/promotion/designModel/TV.java new file mode 100644 index 0000000..484937b --- /dev/null +++ b/src/test/java/com/greenorange/promotion/designModel/TV.java @@ -0,0 +1,8 @@ +package com.greenorange.promotion.designModel; + +public class TV { + + public void turnOn() { + System.out.println("电视已打开"); + } +} diff --git a/src/test/java/com/greenorange/promotion/designModel/TVOnCommand.java b/src/test/java/com/greenorange/promotion/designModel/TVOnCommand.java new file mode 100644 index 0000000..f54232d --- /dev/null +++ b/src/test/java/com/greenorange/promotion/designModel/TVOnCommand.java @@ -0,0 +1,15 @@ +package com.greenorange.promotion.designModel; + +public class TVOnCommand implements Command{ + + private TV tv; + + public TVOnCommand(TV tv) { + this.tv = tv; + } + + @Override + public void execute() { + tv.turnOn(); + } +} diff --git a/src/test/java/com/greenorange/promotion/designModel/TestController.java b/src/test/java/com/greenorange/promotion/designModel/TestController.java new file mode 100644 index 0000000..672d1ce --- /dev/null +++ b/src/test/java/com/greenorange/promotion/designModel/TestController.java @@ -0,0 +1,12 @@ +package com.greenorange.promotion.designModel; + +public class TestController { + + private Command command; + + public void setCommand(Command command) { + this.command = command; + command.execute(); + } + +} diff --git a/src/test/java/com/greenorange/promotion/factory/Computer.java b/src/test/java/com/greenorange/promotion/factory/Computer.java new file mode 100644 index 0000000..c18c069 --- /dev/null +++ b/src/test/java/com/greenorange/promotion/factory/Computer.java @@ -0,0 +1,6 @@ +package com.greenorange.promotion.factory; + +public interface Computer { + + void turnOn(); +} diff --git a/src/test/java/com/greenorange/promotion/factory/ComputerFactory.java b/src/test/java/com/greenorange/promotion/factory/ComputerFactory.java new file mode 100644 index 0000000..a362e49 --- /dev/null +++ b/src/test/java/com/greenorange/promotion/factory/ComputerFactory.java @@ -0,0 +1,7 @@ +package com.greenorange.promotion.factory; + +public abstract class ComputerFactory { + + public abstract Computer createComputer(); + +} diff --git a/src/test/java/com/greenorange/promotion/factory/DellComputer.java b/src/test/java/com/greenorange/promotion/factory/DellComputer.java new file mode 100644 index 0000000..5398281 --- /dev/null +++ b/src/test/java/com/greenorange/promotion/factory/DellComputer.java @@ -0,0 +1,9 @@ +package com.greenorange.promotion.factory; + +public class DellComputer implements Computer{ + + @Override + public void turnOn() { + System.out.println("戴尔电脑开机"); + } +} diff --git a/src/test/java/com/greenorange/promotion/factory/DellFactory.java b/src/test/java/com/greenorange/promotion/factory/DellFactory.java new file mode 100644 index 0000000..b9eca6d --- /dev/null +++ b/src/test/java/com/greenorange/promotion/factory/DellFactory.java @@ -0,0 +1,9 @@ +package com.greenorange.promotion.factory; + +public class DellFactory extends ComputerFactory{ + + @Override + public Computer createComputer() { + return new DellComputer(); + } +} diff --git a/src/test/java/com/greenorange/promotion/factory/LenovoComputer.java b/src/test/java/com/greenorange/promotion/factory/LenovoComputer.java new file mode 100644 index 0000000..62fe92a --- /dev/null +++ b/src/test/java/com/greenorange/promotion/factory/LenovoComputer.java @@ -0,0 +1,9 @@ +package com.greenorange.promotion.factory; + +public class LenovoComputer implements Computer{ + + @Override + public void turnOn() { + System.out.println("联想电脑开机"); + } +} diff --git a/src/test/java/com/greenorange/promotion/factory/LenovoFactory.java b/src/test/java/com/greenorange/promotion/factory/LenovoFactory.java new file mode 100644 index 0000000..f3e4b42 --- /dev/null +++ b/src/test/java/com/greenorange/promotion/factory/LenovoFactory.java @@ -0,0 +1,10 @@ +package com.greenorange.promotion.factory; + +public class LenovoFactory extends ComputerFactory { + + @Override + public Computer createComputer() { + return new LenovoComputer(); + } +} + diff --git a/src/test/java/com/greenorange/promotion/factory/TestFactory.java b/src/test/java/com/greenorange/promotion/factory/TestFactory.java new file mode 100644 index 0000000..6d09212 --- /dev/null +++ b/src/test/java/com/greenorange/promotion/factory/TestFactory.java @@ -0,0 +1,19 @@ +package com.greenorange.promotion.factory; + +public class TestFactory { + + public static void main(String[] args) { + DellFactory dellFactory = new DellFactory(); + LenovoFactory lenovoFactory = new LenovoFactory(); + + Computer dellComputer = dellFactory.createComputer(); + Computer lenovoComputer = lenovoFactory.createComputer(); + dellComputer.turnOn(); + lenovoComputer.turnOn(); + + } + + + + +}