gitextract_i2ygnjo2/ ├── .gitignore ├── LICENSE ├── README.md └── patterns/ ├── behavior/ │ ├── chain_of_responsibility/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── io/ │ │ └── spring2go/ │ │ └── corespring/ │ │ ├── ApproveHandler.java │ │ ├── ClientProgram.java │ │ ├── HR.java │ │ ├── Leave.java │ │ ├── ProjectLeader.java │ │ └── TeamLeader.java │ ├── command/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── io/ │ │ └── spring2go/ │ │ └── corespring/ │ │ └── command/ │ │ ├── CloseFileCommand.java │ │ ├── Command.java │ │ ├── FileInvoker.java │ │ ├── FileSystemClient.java │ │ ├── FileSystemReceiver.java │ │ ├── FileSystemReceiverUtil.java │ │ ├── OpenFileCommand.java │ │ ├── UnixFileSystemReceiver.java │ │ ├── WindowsFileSystemReceiver.java │ │ ├── WriteFileCommand.java │ │ └── uml.ucls │ ├── interpreter/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── io/ │ │ └── spring2go/ │ │ └── corespring/ │ │ └── interpreter/ │ │ ├── App.java │ │ ├── Expression.java │ │ ├── MinusExpression.java │ │ ├── MultiplyExpression.java │ │ ├── NumberExpression.java │ │ ├── PlusExpression.java │ │ └── uml.ucls │ ├── iterator/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── io/ │ │ └── spring2go/ │ │ └── corespring/ │ │ └── iterator/ │ │ ├── App.java │ │ ├── Channel.java │ │ ├── ChannelCollection.java │ │ ├── ChannelCollectionImpl.java │ │ ├── ChannelIterator.java │ │ ├── ChannelTypeEnum.java │ │ └── uml.ucls │ ├── observer/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── io/ │ │ └── spring2go/ │ │ └── patterns/ │ │ └── observer/ │ │ ├── Follower.java │ │ ├── Observer.java │ │ ├── ObserverPatternMain.java │ │ ├── OfficialAccount.java │ │ ├── Subject.java │ │ └── uml.ucls │ ├── strategy/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── io/ │ │ └── spring2go/ │ │ └── corespring/ │ │ └── strategy/ │ │ ├── HeapSortStrategy.java │ │ ├── MergeSortStrategy.java │ │ ├── QuickSortStrategy.java │ │ ├── SortingMainV1.java │ │ ├── SortingMainV2.java │ │ ├── SortingManagerV1.java │ │ ├── SortingManagerV2.java │ │ ├── SortingStrategy.java │ │ ├── SortingType.java │ │ └── uml.ucls │ └── template/ │ ├── pom.xml │ └── src/ │ └── main/ │ └── java/ │ └── io/ │ └── spring2go/ │ └── patterns/ │ └── template/ │ ├── CSVDataParser.java │ ├── DataParser.java │ ├── DatabaseDataParser.java │ └── TemplateMethodMain.java ├── creation/ │ ├── abstract-factory/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── io/ │ │ └── spring2go/ │ │ └── corespring/ │ │ └── abstractfactory/ │ │ ├── AbstractFactoryMain.java │ │ ├── ChineseElectricalFactory.java │ │ ├── ChineseFan.java │ │ ├── ChineseTubeLight.java │ │ ├── IElectricalFactory.java │ │ ├── IFan.java │ │ ├── ITubeLight.java │ │ ├── USElectricalFactory.java │ │ ├── USFan.java │ │ └── USTubeLight.java │ ├── builder/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── io/ │ │ └── spring2go/ │ │ └── corespring/ │ │ ├── classicbuilder/ │ │ │ ├── AndroidPhoneBuilder.java │ │ │ ├── Battery.java │ │ │ ├── ClassicBuilderMain.java │ │ │ ├── IMobilePhoneBuilder.java │ │ │ ├── Manufacturer.java │ │ │ ├── MobilePhone.java │ │ │ ├── OperatingSystem.java │ │ │ ├── ScreenType.java │ │ │ ├── Stylus.java │ │ │ └── WindowsPhoneBuilder.java │ │ ├── javabean/ │ │ │ ├── JavaBeanMain.java │ │ │ └── User.java │ │ ├── modernbuilder/ │ │ │ ├── ModernBuilderMain.java │ │ │ └── User.java │ │ └── telescoping_constructor/ │ │ └── User.java │ ├── factory-method/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── io/ │ │ └── spring2go/ │ │ └── corespring/ │ │ └── factorymethod/ │ │ ├── CeilingFan.java │ │ ├── CeilingFanFactory.java │ │ ├── ExhaustFan.java │ │ ├── ExhaustFanFactory.java │ │ ├── FactoryMethodMain.java │ │ ├── IFan.java │ │ ├── IFanFactory.java │ │ ├── PropellerFan.java │ │ ├── PropellerFanFactory.java │ │ ├── TableFan.java │ │ └── TableFanFactory.java │ ├── simple-factory/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── io/ │ │ └── spring2go/ │ │ └── corespring/ │ │ ├── nofactory/ │ │ │ └── NoFactoryMain.java │ │ └── simplefactory/ │ │ ├── CeilingFan.java │ │ ├── ExhaustFan.java │ │ ├── FanFactory.java │ │ ├── FanType.java │ │ ├── IFan.java │ │ ├── IFanFactory.java │ │ ├── SimpleFactoryMain.java │ │ └── TableFan.java │ └── singleton/ │ ├── filename.ser │ ├── pom.xml │ └── src/ │ └── main/ │ └── java/ │ └── io/ │ └── spring2go/ │ └── corespring/ │ ├── singleton/ │ │ ├── v3/ │ │ │ └── BillPughSingleton.java │ │ └── v4/ │ │ ├── EnumSingleton.java │ │ └── TestEnumSingleton.java │ ├── singleton_deserialization/ │ │ ├── DemoSingleton.java │ │ └── SerializationTest.java │ ├── singleton_reflection/ │ │ ├── ReflectionSingleton.java │ │ └── ReflectionTest.java │ ├── singleton_v1/ │ │ └── EagerSingleton.java │ ├── singleton_v1_1/ │ │ └── StaticBlockSingleton.java │ ├── singleton_v2/ │ │ └── LazySingleton.java │ ├── singleton_v2_1/ │ │ └── ThreadSafeSingleton.java │ └── singleton_v2_2/ │ └── DoubleCheckLockingSingleton.java ├── general/ │ └── dependency-inversion/ │ ├── pom.xml │ └── src/ │ └── main/ │ └── java/ │ └── io/ │ └── spring2go/ │ └── corespring/ │ ├── injection/ │ │ ├── AppMonitorConstructorInjection.java │ │ └── AppMonitorSetterInjection.java │ ├── ioc/ │ │ ├── AppMonitorIOC.java │ │ ├── EmailSender.java │ │ ├── EventLogWriter.java │ │ ├── INotifier.java │ │ └── SMSSender.java │ └── nodip/ │ └── AppMonitorNoDIP.java └── structural/ ├── adapter/ │ ├── pom.xml │ └── src/ │ └── main/ │ └── java/ │ └── io/ │ └── spring2go/ │ └── corespring/ │ ├── display/ │ │ ├── IHdmi.java │ │ ├── IVga.java │ │ ├── LaptopMain.java │ │ ├── Vga2HdmiAdapter.java │ │ └── VgaDisplay.java │ └── stack/ │ ├── ArrayStack.java │ ├── ArrayStackMain.java │ ├── IStack.java │ └── StackException.java ├── bridge/ │ ├── pom.xml │ └── src/ │ └── main/ │ └── java/ │ └── io/ │ └── spring2go/ │ └── corespring/ │ └── bridge/ │ ├── Client.java │ ├── FileDownloadImplementor.java │ ├── FileDownloaderAbstraction.java │ ├── FileDownloaderAbstractionImpl.java │ ├── LinuxFileDownloadImplementor.java │ ├── WindowsFileDownloadImplementor.java │ ├── abstraction_change/ │ │ ├── FileDownloaderAbstraction.java │ │ └── FileDownloaderAbstractionImpl.java │ └── implementation_change/ │ ├── FileDownloadImplementor.java │ ├── LinuxFileDownloadImplementor.java │ └── WindowsFileDownloadImplementor.java ├── composite/ │ ├── pom.xml │ └── src/ │ └── main/ │ └── java/ │ └── io/ │ └── spring2go/ │ └── corespring/ │ ├── composite_complex/ │ │ ├── BaseEmployee.java │ │ ├── CompanyMain.java │ │ ├── Developer.java │ │ ├── IEmployee.java │ │ ├── Manager.java │ │ ├── Subscription.java │ │ ├── SubscriptionType.java │ │ └── Util.java │ └── composite_simple/ │ ├── CompositePatternMain.java │ ├── Developer.java │ ├── IEmployee.java │ └── Manager.java ├── decorator/ │ ├── pom.xml │ └── src/ │ └── main/ │ └── java/ │ └── io/ │ └── spring2go/ │ └── corespring/ │ └── decorator/ │ ├── ArtificialScentDecorator.java │ ├── BakeryComponent.java │ ├── CakeBase.java │ ├── CherryDecorator.java │ ├── CreamDecorator.java │ ├── Decorator.java │ ├── DecoratorMain.java │ ├── NameCardDecorator.java │ ├── PastryBase.java │ ├── Util.java │ └── uml.ucls ├── facade/ │ ├── pom.xml │ └── src/ │ └── main/ │ └── java/ │ └── io/ │ └── spring2go/ │ └── corespring/ │ └── facade/ │ ├── CostManager.java │ ├── FacadeMain.java │ ├── ICosting.java │ ├── IInventory.java │ ├── ILogistics.java │ ├── IOrderVerify.java │ ├── IPaymentGateway.java │ ├── InventoryManager.java │ ├── LogisticsManager.java │ ├── NoFacadeMain.java │ ├── OnlineShoppingFacade.java │ ├── OrderDetails.java │ ├── OrderVerificationManager.java │ └── PaymentGatewayManager.java └── proxy/ ├── pom.xml └── src/ └── main/ └── java/ └── io/ └── spring2go/ └── corespring/ ├── Folder.java ├── FolderProxy.java ├── IFolder.java ├── ProxyDesignPatternMain.java ├── User.java └── uml.ucls