├── .gitignore ├── README.md ├── pom.xml └── src ├── main └── java │ └── com │ └── xkcoding │ ├── App.java │ └── design │ └── pattern │ ├── behavioral │ ├── delegate │ │ ├── Boss.java │ │ ├── ChefWorker.java │ │ ├── Leader.java │ │ ├── TailorWorker.java │ │ ├── Worker.java │ │ └── run │ │ │ └── PatternTest.java │ ├── observer │ │ ├── Message.java │ │ ├── Pusher.java │ │ ├── User.java │ │ └── run │ │ │ └── PatternTest.java │ ├── package-info.java │ ├── strategy │ │ ├── PaymentStrategy.java │ │ ├── payment │ │ │ ├── AliPayment.java │ │ │ ├── JdPayment.java │ │ │ ├── Payment.java │ │ │ ├── UnionPayment.java │ │ │ └── WeChatPayment.java │ │ └── run │ │ │ └── PatternTest.java │ └── template │ │ ├── BaseMessageSender.java │ │ ├── EmailSender.java │ │ ├── SmsSender.java │ │ └── run │ │ └── PatternTest.java │ ├── creational │ ├── abstractfactory │ │ ├── AirPod.java │ │ ├── AppleTechCompany.java │ │ ├── EarPhone.java │ │ ├── HuaweiEarPhone.java │ │ ├── HuaweiLaptop.java │ │ ├── HuaweiPhone.java │ │ ├── HuaweiTechCompany.java │ │ ├── IPhone.java │ │ ├── Laptop.java │ │ ├── MacBookPro.java │ │ ├── MiEarPhone.java │ │ ├── MiLaptop.java │ │ ├── MiPhone.java │ │ ├── MiTechCompany.java │ │ ├── Phone.java │ │ ├── TechFactory.java │ │ └── run │ │ │ └── PatternTest.java │ ├── factorymethod │ │ ├── Candy.java │ │ ├── CandyFactory.java │ │ ├── LemonCandy.java │ │ ├── LemonCandyFactory.java │ │ ├── WatermelonCandy.java │ │ ├── WatermelonCandyFactory.java │ │ └── run │ │ │ └── PatternTest.java │ ├── package-info.java │ ├── prototype │ │ ├── Money.java │ │ ├── Shape.java │ │ ├── deepclone │ │ │ ├── HundredMoney.java │ │ │ └── run │ │ │ │ └── PatternTest.java │ │ └── shallowclone │ │ │ ├── HundredMoney.java │ │ │ └── run │ │ │ └── PatternTest.java │ ├── simplefactory │ │ ├── Candy.java │ │ ├── CandyFactory.java │ │ ├── LemonCandy.java │ │ ├── WatermelonCandy.java │ │ └── run │ │ │ ├── NoPatternTest.java │ │ │ └── PatternTest.java │ └── singleton │ │ ├── eager │ │ ├── EagerSingleton1.java │ │ ├── EagerSingleton2.java │ │ └── EagerSingleton3.java │ │ ├── lazy │ │ ├── LazySingletonDoubleCheck.java │ │ ├── LazySingletonInnerClass.java │ │ └── LazySingletonSimple.java │ │ └── register │ │ ├── RegisterSingletonContainer.java │ │ ├── RegisterSingletonEnum.java │ │ └── RegisterSingletonThreadLocal.java │ ├── structural │ ├── adapter │ │ ├── TypeC.java │ │ ├── TypeCAdapter.java │ │ ├── Usb.java │ │ └── run │ │ │ └── PatternTest.java │ ├── decorator │ │ ├── BaseMacBookProCombo.java │ │ ├── ComboDecorator.java │ │ ├── HardDiskCombo.java │ │ ├── MacBookPro.java │ │ ├── MemoryCombo.java │ │ └── run │ │ │ └── PatternTest.java │ ├── package-info.java │ └── proxy │ │ ├── MusicTicket.java │ │ ├── Ticket.java │ │ ├── dynamicproxy │ │ ├── cglib │ │ │ ├── Conductor.java │ │ │ ├── TrainTicket.java │ │ │ └── run │ │ │ │ └── PatternTest.java │ │ └── jdk │ │ │ ├── Conductor.java │ │ │ ├── SportTicket.java │ │ │ └── run │ │ │ └── PatternTest.java │ │ └── staticproxy │ │ ├── MusicConductor.java │ │ └── run │ │ └── PatternTest.java │ └── utils │ └── ConcurrentExecutor.java └── test └── java └── com └── xkcoding └── AppTest.java /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/.gitignore -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/README.md -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/pom.xml -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/App.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/App.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/behavioral/delegate/Boss.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/behavioral/delegate/Boss.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/behavioral/delegate/ChefWorker.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/behavioral/delegate/ChefWorker.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/behavioral/delegate/Leader.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/behavioral/delegate/Leader.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/behavioral/delegate/TailorWorker.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/behavioral/delegate/TailorWorker.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/behavioral/delegate/Worker.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/behavioral/delegate/Worker.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/behavioral/delegate/run/PatternTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/behavioral/delegate/run/PatternTest.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/behavioral/observer/Message.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/behavioral/observer/Message.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/behavioral/observer/Pusher.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/behavioral/observer/Pusher.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/behavioral/observer/User.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/behavioral/observer/User.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/behavioral/observer/run/PatternTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/behavioral/observer/run/PatternTest.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/behavioral/package-info.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/behavioral/package-info.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/behavioral/strategy/PaymentStrategy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/behavioral/strategy/PaymentStrategy.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/behavioral/strategy/payment/AliPayment.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/behavioral/strategy/payment/AliPayment.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/behavioral/strategy/payment/JdPayment.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/behavioral/strategy/payment/JdPayment.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/behavioral/strategy/payment/Payment.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/behavioral/strategy/payment/Payment.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/behavioral/strategy/payment/UnionPayment.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/behavioral/strategy/payment/UnionPayment.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/behavioral/strategy/payment/WeChatPayment.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/behavioral/strategy/payment/WeChatPayment.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/behavioral/strategy/run/PatternTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/behavioral/strategy/run/PatternTest.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/behavioral/template/BaseMessageSender.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/behavioral/template/BaseMessageSender.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/behavioral/template/EmailSender.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/behavioral/template/EmailSender.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/behavioral/template/SmsSender.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/behavioral/template/SmsSender.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/behavioral/template/run/PatternTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/behavioral/template/run/PatternTest.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/creational/abstractfactory/AirPod.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/creational/abstractfactory/AirPod.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/creational/abstractfactory/AppleTechCompany.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/creational/abstractfactory/AppleTechCompany.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/creational/abstractfactory/EarPhone.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/creational/abstractfactory/EarPhone.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/creational/abstractfactory/HuaweiEarPhone.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/creational/abstractfactory/HuaweiEarPhone.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/creational/abstractfactory/HuaweiLaptop.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/creational/abstractfactory/HuaweiLaptop.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/creational/abstractfactory/HuaweiPhone.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/creational/abstractfactory/HuaweiPhone.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/creational/abstractfactory/HuaweiTechCompany.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/creational/abstractfactory/HuaweiTechCompany.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/creational/abstractfactory/IPhone.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/creational/abstractfactory/IPhone.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/creational/abstractfactory/Laptop.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/creational/abstractfactory/Laptop.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/creational/abstractfactory/MacBookPro.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/creational/abstractfactory/MacBookPro.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/creational/abstractfactory/MiEarPhone.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/creational/abstractfactory/MiEarPhone.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/creational/abstractfactory/MiLaptop.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/creational/abstractfactory/MiLaptop.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/creational/abstractfactory/MiPhone.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/creational/abstractfactory/MiPhone.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/creational/abstractfactory/MiTechCompany.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/creational/abstractfactory/MiTechCompany.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/creational/abstractfactory/Phone.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/creational/abstractfactory/Phone.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/creational/abstractfactory/TechFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/creational/abstractfactory/TechFactory.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/creational/abstractfactory/run/PatternTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/creational/abstractfactory/run/PatternTest.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/creational/factorymethod/Candy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/creational/factorymethod/Candy.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/creational/factorymethod/CandyFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/creational/factorymethod/CandyFactory.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/creational/factorymethod/LemonCandy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/creational/factorymethod/LemonCandy.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/creational/factorymethod/LemonCandyFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/creational/factorymethod/LemonCandyFactory.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/creational/factorymethod/WatermelonCandy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/creational/factorymethod/WatermelonCandy.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/creational/factorymethod/WatermelonCandyFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/creational/factorymethod/WatermelonCandyFactory.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/creational/factorymethod/run/PatternTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/creational/factorymethod/run/PatternTest.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/creational/package-info.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/creational/package-info.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/creational/prototype/Money.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/creational/prototype/Money.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/creational/prototype/Shape.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/creational/prototype/Shape.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/creational/prototype/deepclone/HundredMoney.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/creational/prototype/deepclone/HundredMoney.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/creational/prototype/deepclone/run/PatternTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/creational/prototype/deepclone/run/PatternTest.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/creational/prototype/shallowclone/HundredMoney.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/creational/prototype/shallowclone/HundredMoney.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/creational/prototype/shallowclone/run/PatternTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/creational/prototype/shallowclone/run/PatternTest.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/creational/simplefactory/Candy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/creational/simplefactory/Candy.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/creational/simplefactory/CandyFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/creational/simplefactory/CandyFactory.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/creational/simplefactory/LemonCandy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/creational/simplefactory/LemonCandy.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/creational/simplefactory/WatermelonCandy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/creational/simplefactory/WatermelonCandy.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/creational/simplefactory/run/NoPatternTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/creational/simplefactory/run/NoPatternTest.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/creational/simplefactory/run/PatternTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/creational/simplefactory/run/PatternTest.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/creational/singleton/eager/EagerSingleton1.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/creational/singleton/eager/EagerSingleton1.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/creational/singleton/eager/EagerSingleton2.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/creational/singleton/eager/EagerSingleton2.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/creational/singleton/eager/EagerSingleton3.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/creational/singleton/eager/EagerSingleton3.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/creational/singleton/lazy/LazySingletonDoubleCheck.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/creational/singleton/lazy/LazySingletonDoubleCheck.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/creational/singleton/lazy/LazySingletonInnerClass.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/creational/singleton/lazy/LazySingletonInnerClass.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/creational/singleton/lazy/LazySingletonSimple.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/creational/singleton/lazy/LazySingletonSimple.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/creational/singleton/register/RegisterSingletonContainer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/creational/singleton/register/RegisterSingletonContainer.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/creational/singleton/register/RegisterSingletonEnum.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/creational/singleton/register/RegisterSingletonEnum.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/creational/singleton/register/RegisterSingletonThreadLocal.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/creational/singleton/register/RegisterSingletonThreadLocal.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/structural/adapter/TypeC.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/structural/adapter/TypeC.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/structural/adapter/TypeCAdapter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/structural/adapter/TypeCAdapter.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/structural/adapter/Usb.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/structural/adapter/Usb.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/structural/adapter/run/PatternTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/structural/adapter/run/PatternTest.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/structural/decorator/BaseMacBookProCombo.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/structural/decorator/BaseMacBookProCombo.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/structural/decorator/ComboDecorator.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/structural/decorator/ComboDecorator.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/structural/decorator/HardDiskCombo.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/structural/decorator/HardDiskCombo.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/structural/decorator/MacBookPro.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/structural/decorator/MacBookPro.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/structural/decorator/MemoryCombo.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/structural/decorator/MemoryCombo.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/structural/decorator/run/PatternTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/structural/decorator/run/PatternTest.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/structural/package-info.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/structural/package-info.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/structural/proxy/MusicTicket.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/structural/proxy/MusicTicket.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/structural/proxy/Ticket.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/structural/proxy/Ticket.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/structural/proxy/dynamicproxy/cglib/Conductor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/structural/proxy/dynamicproxy/cglib/Conductor.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/structural/proxy/dynamicproxy/cglib/TrainTicket.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/structural/proxy/dynamicproxy/cglib/TrainTicket.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/structural/proxy/dynamicproxy/cglib/run/PatternTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/structural/proxy/dynamicproxy/cglib/run/PatternTest.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/structural/proxy/dynamicproxy/jdk/Conductor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/structural/proxy/dynamicproxy/jdk/Conductor.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/structural/proxy/dynamicproxy/jdk/SportTicket.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/structural/proxy/dynamicproxy/jdk/SportTicket.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/structural/proxy/dynamicproxy/jdk/run/PatternTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/structural/proxy/dynamicproxy/jdk/run/PatternTest.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/structural/proxy/staticproxy/MusicConductor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/structural/proxy/staticproxy/MusicConductor.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/structural/proxy/staticproxy/run/PatternTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/structural/proxy/staticproxy/run/PatternTest.java -------------------------------------------------------------------------------- /src/main/java/com/xkcoding/design/pattern/utils/ConcurrentExecutor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/main/java/com/xkcoding/design/pattern/utils/ConcurrentExecutor.java -------------------------------------------------------------------------------- /src/test/java/com/xkcoding/AppTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xkcoding/design-pattern/HEAD/src/test/java/com/xkcoding/AppTest.java --------------------------------------------------------------------------------