diff --git a/README.md b/README.md index 0b311fc..cf7c97a 100644 --- a/README.md +++ b/README.md @@ -46,8 +46,4 @@ Java代码积累:**[并发](./README.md/#concurrency) [设计模式](./README. - [StringUtil类 - 封装常用的String方法](./src/util/StringUtil.java) ## basic -- [正则表达式使用方式](./src/basic/UsingRegex.java) - -## 如果有帮到你,欢迎随意打赏,感谢~ -![微信支付](https://raw.githubusercontent.com/echoTheLiar/JavaCodeAcc/master/wechatpay.JPG) -![支付宝](https://raw.githubusercontent.com/echoTheLiar/JavaCodeAcc/master/alipay.JPG) +- [正则表达式使用方式](./src/basic/UsingRegex.java) \ No newline at end of file diff --git a/src/designpattern/decorator/Component.java b/src/designpattern/decorator/Component.java index 5c80106..4ec941e 100644 --- a/src/designpattern/decorator/Component.java +++ b/src/designpattern/decorator/Component.java @@ -2,9 +2,8 @@ /** * Component是定义一个对象接口,可以给这些对象动态地添加职责 - * - * @author liu yuning * + * @author liu yuning */ public abstract class Component { public abstract void operation(); diff --git a/src/designpattern/decorator/ConcreteComponent.java b/src/designpattern/decorator/ConcreteComponent.java index 24399da..45b1b88 100644 --- a/src/designpattern/decorator/ConcreteComponent.java +++ b/src/designpattern/decorator/ConcreteComponent.java @@ -2,15 +2,13 @@ /** * ConcreteComponent是定义一个具体的对象,也可以给这个对象添加一些职责 - * - * @author liu yuning * + * @author liu yuning */ public class ConcreteComponent extends Component { - @Override - public void operation() { - System.out.println("具体对象的操作"); + @Override public void operation() { + System.out.println("具体对象的操作"); } } diff --git a/src/designpattern/decorator/Decorator.java b/src/designpattern/decorator/Decorator.java index 17ea717..a19b3dd 100644 --- a/src/designpattern/decorator/Decorator.java +++ b/src/designpattern/decorator/Decorator.java @@ -3,26 +3,24 @@ /** * Decorator,装饰抽象类,继承了Component,从外类来扩展Component类的功能,但对于Component来说, * 是无需知道Decorator的存在的 - * - * @author liu yuning * + * @author liu yuning */ public abstract class Decorator extends Component { protected Component component; public Component getComponent() { - return component; + return component; } public void setComponent(Component component) { - this.component = component; + this.component = component; } - @Override - public void operation() { - if (component != null) { - component.operation(); - } + @Override public void operation() { + if (component != null) { + component.operation(); + } } } @@ -30,33 +28,30 @@ public void operation() { class ConcreteDecoratorA extends Decorator { private String addedState; - @Override - public void operation() { - // 首先运行原Component的operation(),再执行本类的功能,如addedState,相当于对原Component进行了装饰 - super.operation(); - addedState = "A中的new state "; - System.out.println(addedState + "具体装饰对象A的操作"); + @Override public void operation() { + // 首先运行原Component的operation(),再执行本类的功能,如addedState,相当于对原Component进行了装饰 + super.operation(); + addedState = "A中的new state "; + System.out.println(addedState + "具体装饰对象A的操作"); } } class ConcreteDecoratorB extends Decorator { - @Override - public void operation() { - super.operation(); - addedBehavior(); - System.out.println("具体装饰对象B的操作"); + @Override public void operation() { + super.operation(); + addedBehavior(); + System.out.println("具体装饰对象B的操作"); } public void addedBehavior() { - System.out.print("B中的新增行为 "); + System.out.print("B中的新增行为 "); } } class ConcreteDecoratorC extends Decorator { - @Override - public void operation() { - super.operation(); - System.out.println("C没有特殊行为 " + "具体装饰对象C的操作"); + @Override public void operation() { + super.operation(); + System.out.println("C没有特殊行为 " + "具体装饰对象C的操作"); } } diff --git a/src/designpattern/decorator/DecoratorClient.java b/src/designpattern/decorator/DecoratorClient.java index 797165c..9b5b7f4 100644 --- a/src/designpattern/decorator/DecoratorClient.java +++ b/src/designpattern/decorator/DecoratorClient.java @@ -2,21 +2,20 @@ /** * 装饰模式客户端调用代码,装饰的过程更像是层层包装,用前面的对象装饰后面的对象 - * - * @author liu yuning * + * @author liu yuning */ public class DecoratorClient { public static void main(String[] args) { - ConcreteComponent concreteComponent = new ConcreteComponent(); - ConcreteDecoratorA concreteDecoratorA = new ConcreteDecoratorA(); - ConcreteDecoratorB concreteDecoratorB = new ConcreteDecoratorB(); - ConcreteDecoratorC concreteDecoratorC = new ConcreteDecoratorC(); + ConcreteComponent concreteComponent = new ConcreteComponent(); + ConcreteDecoratorA concreteDecoratorA = new ConcreteDecoratorA(); + ConcreteDecoratorB concreteDecoratorB = new ConcreteDecoratorB(); + ConcreteDecoratorC concreteDecoratorC = new ConcreteDecoratorC(); - concreteDecoratorA.setComponent(concreteComponent); - concreteDecoratorB.setComponent(concreteDecoratorA); - concreteDecoratorC.setComponent(concreteDecoratorB); - concreteDecoratorC.operation(); + concreteDecoratorA.setComponent(concreteComponent); + concreteDecoratorB.setComponent(concreteDecoratorA); + concreteDecoratorC.setComponent(concreteDecoratorB); + concreteDecoratorC.operation(); } } diff --git a/src/designpattern/factory/abstraction/Client.java b/src/designpattern/factory/abstraction/Client.java index 41ffec2..f2b3767 100644 --- a/src/designpattern/factory/abstraction/Client.java +++ b/src/designpattern/factory/abstraction/Client.java @@ -4,18 +4,16 @@ /** * 客户端 - * - * @author liu yuning * + * @author liu yuning */ public class Client { - public static void main(String[] args) throws InstantiationException, - IllegalAccessException { - Operation operation = OperationFactory.createOperation("/"); + public static void main(String[] args) throws InstantiationException, IllegalAccessException { + Operation operation = OperationFactory.createOperation("/"); - operation.numberA = 7; - operation.numberB = 8; + operation.numberA = 7; + operation.numberB = 8; - System.out.println(operation.result()); + System.out.println(operation.result()); } } diff --git a/src/designpattern/factory/abstraction/OperationFactory.java b/src/designpattern/factory/abstraction/OperationFactory.java index b13483a..265fa84 100644 --- a/src/designpattern/factory/abstraction/OperationFactory.java +++ b/src/designpattern/factory/abstraction/OperationFactory.java @@ -11,34 +11,32 @@ /** * 利用反射改造简单工厂模式,去掉分支判断的逻辑 - * - * @author liu yuning * + * @author liu yuning */ public class OperationFactory { private static Map> allOperationMaps = new HashMap>(); public static void fillMap() { - allOperationMaps.put("+", OperationAdd.class); - allOperationMaps.put("-", OperationSub.class); - allOperationMaps.put("*", OperationMul.class); - allOperationMaps.put("/", OperationDiv.class); + allOperationMaps.put("+", OperationAdd.class); + allOperationMaps.put("-", OperationSub.class); + allOperationMaps.put("*", OperationMul.class); + allOperationMaps.put("/", OperationDiv.class); } - public static Operation createOperation(String operator) - throws InstantiationException, IllegalAccessException { - Operation operation; + public static Operation createOperation(String operator) throws InstantiationException, IllegalAccessException { + Operation operation; - fillMap(); - Class operationClass = allOperationMaps.get(operator); + fillMap(); + Class operationClass = allOperationMaps.get(operator); - if (operationClass == null) { - throw new RuntimeException("unsupported operation"); - } + if (operationClass == null) { + throw new RuntimeException("unsupported operation"); + } - operation = (Operation) operationClass.newInstance(); + operation = (Operation) operationClass.newInstance(); - return operation; + return operation; } } diff --git a/src/designpattern/factory/method/FactoryClient.java b/src/designpattern/factory/method/FactoryClient.java index 6e833d7..8065c77 100644 --- a/src/designpattern/factory/method/FactoryClient.java +++ b/src/designpattern/factory/method/FactoryClient.java @@ -4,19 +4,18 @@ /** * 工厂方法客户端 - * - * @author liu yuning * + * @author liu yuning */ public class FactoryClient { public static void main(String[] args) { - IFactory operFactory = new DivFactory(); - Operation operation = operFactory.createOperation(); + IFactory operFactory = new DivFactory(); + Operation operation = operFactory.createOperation(); - operation.numberA = 3.4; - operation.numberB = 4.5; + operation.numberA = 3.4; + operation.numberB = 4.5; - System.out.println(operation.result()); + System.out.println(operation.result()); } } \ No newline at end of file diff --git a/src/designpattern/factory/method/IFactory.java b/src/designpattern/factory/method/IFactory.java index d70ae69..14d05cb 100644 --- a/src/designpattern/factory/method/IFactory.java +++ b/src/designpattern/factory/method/IFactory.java @@ -8,9 +8,8 @@ /** * 工厂接口 - * - * @author liu yuning * + * @author liu yuning */ public interface IFactory { public Operation createOperation(); @@ -18,36 +17,32 @@ public interface IFactory { class AddFactory implements IFactory { - @Override - public Operation createOperation() { - return new OperationAdd(); + @Override public Operation createOperation() { + return new OperationAdd(); } } class SubFactory implements IFactory { - @Override - public Operation createOperation() { - return new OperationSub(); + @Override public Operation createOperation() { + return new OperationSub(); } } class MulFactory implements IFactory { - @Override - public Operation createOperation() { - return new OperationMul(); + @Override public Operation createOperation() { + return new OperationMul(); } } class DivFactory implements IFactory { - @Override - public Operation createOperation() { - return new OperationDiv(); + @Override public Operation createOperation() { + return new OperationDiv(); } } \ No newline at end of file diff --git a/src/designpattern/factory/simple/Calculator.java b/src/designpattern/factory/simple/Calculator.java index a2ebcf8..c08ac56 100644 --- a/src/designpattern/factory/simple/Calculator.java +++ b/src/designpattern/factory/simple/Calculator.java @@ -2,20 +2,19 @@ /** * 使用工厂方法生成实例完成运算操作 - * - * @author liu yuning * + * @author liu yuning */ public class Calculator { public static void main(String[] args) { - Operation operation; - char operator; + Operation operation; + char operator; - operator = '+'; - operation = OperationFactory.createOperation(operator); - operation.numberA = 1.2; - operation.numberB = 2.3; + operator = '+'; + operation = OperationFactory.createOperation(operator); + operation.numberA = 1.2; + operation.numberB = 2.3; - System.out.println(operation.result()); + System.out.println(operation.result()); } } \ No newline at end of file diff --git a/src/designpattern/factory/simple/Operation.java b/src/designpattern/factory/simple/Operation.java index 629fb67..5034aa9 100644 --- a/src/designpattern/factory/simple/Operation.java +++ b/src/designpattern/factory/simple/Operation.java @@ -2,12 +2,12 @@ /** * 操作类抽象类 - * - * @author liu yuning * + * @author liu yuning */ public abstract class Operation { public double numberA; + public double numberB; public abstract double result(); diff --git a/src/designpattern/factory/simple/OperationAdd.java b/src/designpattern/factory/simple/OperationAdd.java index 985325a..b7034d7 100644 --- a/src/designpattern/factory/simple/OperationAdd.java +++ b/src/designpattern/factory/simple/OperationAdd.java @@ -2,15 +2,13 @@ /** * 加法类 - * - * @author liu yuning * + * @author liu yuning */ public class OperationAdd extends Operation { - @Override - public double result() { - return numberA + numberB; + @Override public double result() { + return numberA + numberB; } } \ No newline at end of file diff --git a/src/designpattern/factory/simple/OperationDiv.java b/src/designpattern/factory/simple/OperationDiv.java index 631dccb..fbe9f31 100644 --- a/src/designpattern/factory/simple/OperationDiv.java +++ b/src/designpattern/factory/simple/OperationDiv.java @@ -2,18 +2,16 @@ /** * 除法类 - * - * @author liu yuning * + * @author liu yuning */ public class OperationDiv extends Operation { - @Override - public double result() { - if (numberB == 0) { - throw new RuntimeException("divided by 0"); - } - return numberA / numberB; + @Override public double result() { + if (numberB == 0) { + throw new RuntimeException("divided by 0"); + } + return numberA / numberB; } } \ No newline at end of file diff --git a/src/designpattern/factory/simple/OperationFactory.java b/src/designpattern/factory/simple/OperationFactory.java index 76aa9dc..d3a6908 100644 --- a/src/designpattern/factory/simple/OperationFactory.java +++ b/src/designpattern/factory/simple/OperationFactory.java @@ -2,31 +2,30 @@ /** * 操作类工厂类 - * - * @author liu yuning * + * @author liu yuning */ public class OperationFactory { public static Operation createOperation(char operator) { - Operation operation = null; + Operation operation = null; - switch (operator) { - case '+': - operation = new OperationAdd(); - break; - case '-': - operation = new OperationSub(); - break; - case '*': - operation = new OperationMul(); - break; - case '/': - operation = new OperationDiv(); - break; - default: - throw new RuntimeException("unsupported operation"); - } + switch (operator) { + case '+': + operation = new OperationAdd(); + break; + case '-': + operation = new OperationSub(); + break; + case '*': + operation = new OperationMul(); + break; + case '/': + operation = new OperationDiv(); + break; + default: + throw new RuntimeException("unsupported operation"); + } - return operation; + return operation; } } \ No newline at end of file diff --git a/src/designpattern/factory/simple/OperationMul.java b/src/designpattern/factory/simple/OperationMul.java index d4aa7cd..f021da3 100644 --- a/src/designpattern/factory/simple/OperationMul.java +++ b/src/designpattern/factory/simple/OperationMul.java @@ -2,15 +2,13 @@ /** * 乘法类 - * - * @author liu yuning * + * @author liu yuning */ public class OperationMul extends Operation { - @Override - public double result() { - return numberA * numberB; + @Override public double result() { + return numberA * numberB; } } \ No newline at end of file diff --git a/src/designpattern/factory/simple/OperationSub.java b/src/designpattern/factory/simple/OperationSub.java index ea31799..8204cdc 100644 --- a/src/designpattern/factory/simple/OperationSub.java +++ b/src/designpattern/factory/simple/OperationSub.java @@ -2,15 +2,13 @@ /** * 减法类 - * - * @author liu yuning * + * @author liu yuning */ public class OperationSub extends Operation { - @Override - public double result() { - return numberA - numberB; + @Override public double result() { + return numberA - numberB; } } \ No newline at end of file diff --git a/src/designpattern/proxy/Proxy.java b/src/designpattern/proxy/Proxy.java index 29d3795..a81843a 100644 --- a/src/designpattern/proxy/Proxy.java +++ b/src/designpattern/proxy/Proxy.java @@ -2,9 +2,8 @@ /** * 代理类 - * - * @author liu yuning * + * @author liu yuning */ public class Proxy implements Subject { @@ -12,12 +11,11 @@ public class Proxy implements Subject { Subject subject; public Proxy() { - subject = new RealSubject(); + subject = new RealSubject(); } - @Override - public void request() { - subject.request(); + @Override public void request() { + subject.request(); } } diff --git a/src/designpattern/proxy/ProxyClient.java b/src/designpattern/proxy/ProxyClient.java index 84969e2..5866e63 100644 --- a/src/designpattern/proxy/ProxyClient.java +++ b/src/designpattern/proxy/ProxyClient.java @@ -2,13 +2,12 @@ /** * 代理客户端 - * - * @author liu yuning * + * @author liu yuning */ public class ProxyClient { public static void main(String[] args) { - Proxy proxy = new Proxy(); - proxy.request(); + Proxy proxy = new Proxy(); + proxy.request(); } } diff --git a/src/designpattern/proxy/RealSubject.java b/src/designpattern/proxy/RealSubject.java index a1996c7..94cebb9 100644 --- a/src/designpattern/proxy/RealSubject.java +++ b/src/designpattern/proxy/RealSubject.java @@ -2,15 +2,13 @@ /** * 真实实体类 - * - * @author liu yuning * + * @author liu yuning */ public class RealSubject implements Subject { - @Override - public void request() { - System.out.println("真实对象的请求"); + @Override public void request() { + System.out.println("真实对象的请求"); } } diff --git a/src/designpattern/proxy/Subject.java b/src/designpattern/proxy/Subject.java index bc7ed68..60b7946 100644 --- a/src/designpattern/proxy/Subject.java +++ b/src/designpattern/proxy/Subject.java @@ -2,9 +2,8 @@ /** * 定义真实实体类与代理类共用的接口 - * - * @author liu yuning * + * @author liu yuning */ public interface Subject { public void request(); diff --git a/src/designpattern/strategy/Context.java b/src/designpattern/strategy/Context.java index f595c4e..799eb71 100644 --- a/src/designpattern/strategy/Context.java +++ b/src/designpattern/strategy/Context.java @@ -2,22 +2,21 @@ /** * 上下文 - * - * @author liu yuning * + * @author liu yuning */ public class Context { Strategy strategy; public Context(Strategy strategy) { - this.strategy = strategy; + this.strategy = strategy; } /** * 上下文接口 */ public void contextInterface() { - strategy.algorithmInterface(); + strategy.algorithmInterface(); } } \ No newline at end of file diff --git a/src/designpattern/strategy/Strategy.java b/src/designpattern/strategy/Strategy.java index 372b99b..8e6d517 100644 --- a/src/designpattern/strategy/Strategy.java +++ b/src/designpattern/strategy/Strategy.java @@ -2,9 +2,8 @@ /** * 策略接口 - * - * @author liu yuning * + * @author liu yuning */ public interface Strategy { public void algorithmInterface(); @@ -12,27 +11,24 @@ public interface Strategy { class ConcreteStrategyA implements Strategy { - @Override - public void algorithmInterface() { - System.out.println("策略A的具体算法实现"); + @Override public void algorithmInterface() { + System.out.println("策略A的具体算法实现"); } } class ConcreteStrategyB implements Strategy { - @Override - public void algorithmInterface() { - System.out.println("策略B的具体算法实现"); + @Override public void algorithmInterface() { + System.out.println("策略B的具体算法实现"); } } class ConcreteStrategyC implements Strategy { - @Override - public void algorithmInterface() { - System.out.println("策略C的具体算法实现"); + @Override public void algorithmInterface() { + System.out.println("策略C的具体算法实现"); } } \ No newline at end of file diff --git a/src/designpattern/strategy/StrategyClient.java b/src/designpattern/strategy/StrategyClient.java index acb7189..3522911 100644 --- a/src/designpattern/strategy/StrategyClient.java +++ b/src/designpattern/strategy/StrategyClient.java @@ -2,22 +2,21 @@ /** * 客户端使用策略 - * - * @author liu yuning * + * @author liu yuning */ public class StrategyClient { public static void main(String[] args) { - Context context; + Context context; - context = new Context(new ConcreteStrategyA()); - context.contextInterface(); + context = new Context(new ConcreteStrategyA()); + context.contextInterface(); - context = new Context(new ConcreteStrategyB()); - context.contextInterface(); + context = new Context(new ConcreteStrategyB()); + context.contextInterface(); - context = new Context(new ConcreteStrategyC()); - context.contextInterface(); + context = new Context(new ConcreteStrategyC()); + context.contextInterface(); } }