diff --git a/.gitignore b/.gitignore index d364bea..34cda4a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,13 @@ +# Created by .ignore support plugin (hsz.mobi) +### Example user template template +### Example user template + +# IntelliJ project files +.idea +*.iml +out +gen +### Java template # Compiled class file *.class @@ -7,7 +17,6 @@ # BlueJ files *.ctxt - # Mobile Tools for Java (J2ME) .mtj.tmp/ @@ -19,11 +28,36 @@ *.zip *.tar.gz *.rar -*.ear # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid* -.idea/ -target/ +### macOS template +# General .DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +target/ diff --git a/LICENSE b/LICENSE deleted file mode 100644 index a8c94a2..0000000 --- a/LICENSE +++ /dev/null @@ -1,162 +0,0 @@ -Artistic License 2.0 -Copyright (c) - -Everyone is permitted to copy and distribute verbatim copies of this license -document, but changing it is not allowed. - -Preamble -This license establishes the terms under which a given free software Package may -be copied, modified, distributed, and/or redistributed. The intent is that the -Copyright Holder maintains some artistic control over the development of that -Package while still keeping the Package available as open source and free -software. - -You are always permitted to make arrangements wholly outside of this license -directly with the Copyright Holder of a given Package. If the terms of this -license do not permit the full use that you propose to make of the Package, you -should contact the Copyright Holder and seek a different licensing arrangement. - -Definitions -"Copyright Holder" means the individual(s) or organization(s) named in the -copyright notice for the entire Package. - -"Contributor" means any party that has contributed code or other material to the -Package, in accordance with the Copyright Holder's procedures. - -"You" and "your" means any person who would like to copy, distribute, or modify -the Package. - -"Package" means the collection of files distributed by the Copyright Holder, and -derivatives of that collection and/or of those files. A given Package may -consist of either the Standard Version, or a Modified Version. - -"Distribute" means providing a copy of the Package or making it accessible to -anyone else, or in the case of a company or organization, to others outside of -your company or organization. - -"Distributor Fee" means any fee that you charge for Distributing this Package or -providing support for this Package to another party. It does not mean licensing -fees. - -"Standard Version" refers to the Package if it has not been modified, or has -been modified only in ways explicitly requested by the Copyright Holder. - -"Modified Version" means the Package, if it has been changed, and such changes -were not explicitly requested by the Copyright Holder. - -"Original License" means this Artistic License as Distributed with the Standard -Version of the Package, in its current version or as it may be modified by The -Perl Foundation in the future. - -"Source" form means the source code, documentation source, and configuration -files for the Package. - -"Compiled" form means the compiled bytecode, object code, binary, or any other -form resulting from mechanical transformation or translation of the Source form. - -Permission for Use and Modification Without Distribution -(1) You are permitted to use the Standard Version and create and use Modified -Versions for any purpose without restriction, provided that you do not -Distribute the Modified Version. - -Permissions for Redistribution of the Standard Version -(2) You may Distribute verbatim copies of the Source form of the Standard -Version of this Package in any medium without restriction, either gratis or for -a Distributor Fee, provided that you duplicate all of the original copyright -notices and associated disclaimers. At your discretion, such verbatim copies may -or may not include a Compiled form of the Package. - -(3) You may apply any bug fixes, portability changes, and other modifications -made available from the Copyright Holder. The resulting Package will still be -considered the Standard Version, and as such will be subject to the Original -License. - -Distribution of Modified Versions of the Package as Source -(4) You may Distribute your Modified Version as Source (either gratis or for a -Distributor Fee, and with or without a Compiled form of the Modified Version) -provided that you clearly document how it differs from the Standard Version, -including, but not limited to, documenting any non-standard features, -executables, or modules, and provided that you do at least ONE of the following: - -(a) make the Modified Version available to the Copyright Holder of the Standard -Version, under the Original License, so that the Copyright Holder may include -your modifications in the Standard Version. -(b) ensure that installation of your Modified Version does not prevent the user -installing or running the Standard Version. In addition, the Modified Version -must bear a name that is different from the name of the Standard Version. -(c) allow anyone who receives a copy of the Modified Version to make the Source -form of the Modified Version available to others under -(i) the Original License or -(ii) a license that permits the licensee to freely copy, modify and redistribute -the Modified Version using the same licensing terms that apply to the copy that -the licensee received, and requires that the Source form of the Modified -Version, and of any works derived from it, be made freely available in that -license fees are prohibited but Distributor Fees are allowed. - -Distribution of Compiled Forms of the Standard Version or Modified Versions -without the Source -(5) You may Distribute Compiled forms of the Standard Version without the -Source, provided that you include complete instructions on how to get the Source -of the Standard Version. Such instructions must be valid at the time of your -distribution. If these instructions, at any time while you are carrying out such -distribution, become invalid, you must provide new instructions on demand or -cease further distribution. If you provide valid instructions or cease -distribution within thirty days after you become aware that the instructions are -invalid, then you do not forfeit any of your rights under this license. - -(6) You may Distribute a Modified Version in Compiled form without the Source, -provided that you comply with Section 4 with respect to the Source of the -Modified Version. - -Aggregating or Linking the Package -(7) You may aggregate the Package (either the Standard Version or Modified -Version) with other packages and Distribute the resulting aggregation provided -that you do not charge a licensing fee for the Package. Distributor Fees are -permitted, and licensing fees for other components in the aggregation are -permitted. The terms of this license apply to the use and Distribution of the -Standard or Modified Versions as included in the aggregation. - -(8) You are permitted to link Modified and Standard Versions with other works, -to embed the Package in a larger work of your own, or to build stand-alone -binary or bytecode versions of applications that include the Package, and -Distribute the result without restriction, provided the result does not expose a -direct interface to the Package. - -Items That are Not Considered Part of a Modified Version - -(9) Works (including, but not limited to, modules and scripts) that merely -extend or make use of the Package, do not, by themselves, cause the Package to -be a Modified Version. In addition, such works are not considered parts of the -Package itself, and are not subject to the terms of this license. - -General Provisions - -(10) Any use, modification, and distribution of the Standard or Modified -Versions is governed by this Artistic License. By using, modifying or -distributing the Package, you accept this license. Do not use, modify, or -distribute the Package, if you do not accept this license. - -(11) If your Modified Version has been derived from a Modified Version made by -someone other than you, you are nevertheless required to ensure that your -Modified Version complies with the requirements of this license. - -(12) This license does not grant you the right to use any trademark, service -mark, tradename, or logo of the Copyright Holder. - -(13) This license includes the non-exclusive, worldwide, free-of-charge patent -license to make, have made, use, offer to sell, sell, import and otherwise -transfer the Package with respect to any patent claims licensable by the -Copyright Holder that are necessarily infringed by the Package. If you institute -patent litigation (including a cross-claim or counterclaim) against any party -alleging that the Package constitutes direct or contributory patent -infringement, then this Artistic License to you shall terminate on the date that -such litigation is filed. - -(14) Disclaimer of Warranty: THE PACKAGE IS PROVIDED BY THE COPYRIGHT HOLDER AND -CONTRIBUTORS "AS IS' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. THE IMPLIED -WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR -NON-INFRINGEMENT ARE DISCLAIMED TO THE EXTENT PERMITTED BY YOUR LOCAL LAW. -UNLESS REQUIRED BY LAW, NO COPYRIGHT HOLDER OR CONTRIBUTOR WILL BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING IN ANY WAY -OUT OF THE USE OF THE PACKAGE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. diff --git a/README.md b/README.md index fd6690c..02e4a8a 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,11 @@ -# java_learn_note -Java基础知识,框架总结 +# 项目说明 + +> 本项目为设计模式学习笔记 +> +> 资料来自B站: +> https://www.bilibili.com/video/BV1M5411N7uh?spm_id_from=333.999.0.0&vd_source=616bf6a004def119a1b27e570687e7ea +> +> https://www.bilibili.com/video/BV1G44y1R7nv/?spm_id_from=333.788.recommend_more_video.2&vd_source=616bf6a004def119a1b27e570687e7ea +> +> 形容词用接口;名词用抽象类 +> \ No newline at end of file diff --git a/docs/Factory.puml b/docs/Factory.puml new file mode 100644 index 0000000..6c7cc8e --- /dev/null +++ b/docs/Factory.puml @@ -0,0 +1,18 @@ +@startuml +'https://plantuml.com/class-diagram + +interface Movable +class Car implements Movable +class Plane implements Movable + +class Factory { + + crate(): Movable +} +class CarFactory extends Factory +class PlaneFactory extends Factory + +Movable -- Factory +CarFactory -- Car +PlaneFactory -- Plane + +@enduml \ No newline at end of file diff --git a/docs/abstractFactory.puml b/docs/abstractFactory.puml new file mode 100644 index 0000000..7ad6ec6 --- /dev/null +++ b/docs/abstractFactory.puml @@ -0,0 +1,20 @@ +@startuml +'https://plantuml.com/class-diagram + +abstract class AbstractFactory +abstract class ModernFactory extends AbstractFactory +abstract class MagicFactory extends AbstractFactory + +abstract class Weapon +abstract class Food +abstract class Vehicle + +AbstractFactory --> Weapon +AbstractFactory --> Food +AbstractFactory --> Vehicle + +class AK47 extends Weapon +class Car extends Vehicle +class Bread extends Food + +@enduml \ No newline at end of file diff --git a/docs/strategy.puml b/docs/strategy.puml new file mode 100644 index 0000000..9052407 --- /dev/null +++ b/docs/strategy.puml @@ -0,0 +1,17 @@ +@startuml +'https://plantuml.com/class-diagram + +class client { + + sort() : void +} + +interface Comparator + +client -- Comparator + +skinparam groupInheritance 2 +class DogC extends Comparator +class CatC1 extends Comparator +class CatC2 extends Comparator +class CatC3 extends Comparator +@enduml \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..b0a5a0f --- /dev/null +++ b/pom.xml @@ -0,0 +1,91 @@ + + + + 4.0.0 + + com.team + design-patterns + 1.0-SNAPSHOT + + design-patterns + + http://www.example.com + + + UTF-8 + 1.7 + 1.7 + + + + + junit + junit + 4.11 + test + + + org.junit.jupiter + junit-jupiter + 5.9.1 + test + + + + + + + + + maven-clean-plugin + 3.1.0 + + + + maven-resources-plugin + 3.0.2 + + + maven-compiler-plugin + 3.8.0 + + + maven-surefire-plugin + 2.22.1 + + + maven-jar-plugin + 3.0.2 + + + maven-install-plugin + 2.5.2 + + + maven-deploy-plugin + 2.8.2 + + + + maven-site-plugin + 3.7.1 + + + maven-project-info-reports-plugin + 3.0.0 + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + 8 + 8 + + + + + diff --git a/runoob-demo/.idea/workspace.xml b/runoob-demo/.idea/workspace.xml deleted file mode 100644 index b9aebc7..0000000 --- a/runoob-demo/.idea/workspace.xml +++ /dev/null @@ -1,999 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - Android - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -