├── .idea ├── description.html ├── misc.xml ├── modules.xml ├── project-template.xml ├── uiDesigner.xml ├── vcs.xml └── workspace.xml ├── PatronJava.iml ├── out └── production │ └── PatronJava │ └── com │ └── company │ ├── Main.class │ ├── behavioral │ ├── chainofresponsibility │ │ ├── ApproveLoanChain.class │ │ ├── Black.class │ │ ├── Gold.class │ │ ├── Platinium.class │ │ └── Tarjeta.class │ ├── command │ │ ├── Command.class │ │ ├── CreditCard.class │ │ ├── CreditCardActivateCommand.class │ │ ├── CreditCardDesactivateCommand.class │ │ └── CreditCardInvoker.class │ ├── interpreter │ │ ├── AndExpression.class │ │ ├── Expression.class │ │ ├── OrExpression.class │ │ └── TerminalExpression.class │ ├── iterator │ │ ├── Card.class │ │ ├── CardIterator.class │ │ ├── CardList.class │ │ ├── Iterator.class │ │ └── List.class │ ├── mediator │ │ ├── Colleage.class │ │ ├── ConcreteColleage1.class │ │ ├── ConcreteColleage2.class │ │ ├── ConcreteMediator.class │ │ └── Mediator.class │ ├── memento │ │ ├── Article.class │ │ ├── ArticleMemento.class │ │ └── Carataker.class │ ├── observer │ │ ├── Coche.class │ │ ├── MessagePublisher.class │ │ ├── Observer.class │ │ ├── Peaton.class │ │ ├── Semaforo.class │ │ └── Subject.class │ ├── state │ │ ├── MobileAlertState.class │ │ ├── MobileAlertStateContext.class │ │ ├── Silent.class │ │ ├── Sound.class │ │ └── Vibration.class │ ├── strategy │ │ ├── CapitalStrategyTextFormatter.class │ │ ├── Context.class │ │ ├── LowerStrategyTestFormatter.class │ │ └── StragetyTextFormatter.class │ ├── templatemethod │ │ ├── Payment.class │ │ ├── Paypal.class │ │ └── Visa.class │ └── visitor │ │ ├── BlackCreditCardVisitor.class │ │ ├── ClassicCreditCardVisitor.class │ │ ├── CreditCardVisitor.class │ │ ├── OfertaElement.class │ │ ├── OfertaGasolina.class │ │ └── OfertaVuelos.class │ ├── creational │ ├── abstractfactory │ │ ├── AbstractFactory.class │ │ ├── Card.class │ │ ├── CardFactory.class │ │ ├── Credit.class │ │ ├── Debit.class │ │ ├── FactoryProvider.class │ │ ├── MasterCard.class │ │ ├── PaymentMethod.class │ │ ├── PaymentMethodFactory.class │ │ └── Visa.class │ ├── builder │ │ ├── Card$1.class │ │ ├── Card$CardBuilder.class │ │ └── Card.class │ ├── factorymethod │ │ ├── CardPayment.class │ │ ├── GooglePayment.class │ │ ├── Payment.class │ │ ├── PaymentFactory$1.class │ │ ├── PaymentFactory.class │ │ └── TypePayment.class │ ├── prototype │ │ ├── Amex.class │ │ ├── PrototypeCard.class │ │ ├── PrototypeFactory$CartType.class │ │ ├── PrototypeFactory.class │ │ └── Visa.class │ └── singlenton │ │ └── Card.class │ └── structural │ ├── adapter │ ├── Adapter.class │ ├── BlackCreditCard.class │ ├── CreditCard.class │ ├── GoldCreditCard.class │ ├── Payment.class │ └── Secure.class │ ├── bridge │ ├── ClassicCreditCard.class │ ├── CreditCard.class │ ├── ICreditCard.class │ ├── SecureCreditCard.class │ └── UnsecureCreditCard.class │ ├── composite │ ├── CuentaAhorro.class │ ├── CuentaComponent.class │ ├── CuentaComposite.class │ └── CuentaCorriente.class │ ├── decorator │ ├── Black.class │ ├── Credit.class │ ├── CreditDecorator.class │ ├── Gold.class │ ├── InternationalPaymentDecorator.class │ └── SecureDecorator.class │ ├── facade │ ├── Black.class │ ├── Credit.class │ ├── CreditMarket.class │ ├── Gold.class │ └── Silver.class │ ├── flyweight │ ├── Detective.class │ ├── Enemy.class │ ├── EnemyFactory.class │ └── Private.class │ └── proxy │ ├── AccessToInternet.class │ ├── Internet.class │ └── ProxyInternet.class └── src └── com └── company ├── Main.java ├── behavioral ├── chainofresponsibility │ ├── ApproveLoanChain.java │ ├── Black.java │ ├── Gold.java │ ├── Platinium.java │ └── Tarjeta.java ├── command │ ├── Command.java │ ├── CreditCard.java │ ├── CreditCardActivateCommand.java │ ├── CreditCardDesactivateCommand.java │ └── CreditCardInvoker.java ├── interpreter │ ├── AndExpression.java │ ├── Expression.java │ ├── OrExpression.java │ └── TerminalExpression.java ├── iterator │ ├── Card.java │ ├── CardIterator.java │ ├── CardList.java │ ├── Iterator.java │ └── List.java ├── mediator │ ├── Colleage.java │ ├── ConcreteColleage1.java │ ├── ConcreteColleage2.java │ ├── ConcreteMediator.java │ └── Mediator.java ├── memento │ ├── Article.java │ ├── ArticleMemento.java │ └── Carataker.java ├── observer │ ├── Coche.java │ ├── MessagePublisher.java │ ├── Observer.java │ ├── Peaton.java │ ├── Semaforo.java │ └── Subject.java ├── state │ ├── MobileAlertState.java │ ├── MobileAlertStateContext.java │ ├── Silent.java │ ├── Sound.java │ └── Vibration.java ├── strategy │ ├── CapitalStrategyTextFormatter.java │ ├── Context.java │ ├── LowerStrategyTestFormatter.java │ └── StragetyTextFormatter.java ├── templatemethod │ ├── Payment.java │ ├── Paypal.java │ └── Visa.java └── visitor │ ├── BlackCreditCardVisitor.java │ ├── ClassicCreditCardVisitor.java │ ├── CreditCardVisitor.java │ ├── OfertaElement.java │ ├── OfertaGasolina.java │ └── OfertaVuelos.java ├── creational ├── abstractfactory │ ├── AbstractFactory.java │ ├── Card.java │ ├── CardFactory.java │ ├── Credit.java │ ├── Debit.java │ ├── FactoryProvider.java │ ├── MasterCard.java │ ├── PaymentMethod.java │ ├── PaymentMethodFactory.java │ └── Visa.java ├── builder │ └── Card.java ├── factorymethod │ ├── CardPayment.java │ ├── GooglePayment.java │ ├── Payment.java │ ├── PaymentFactory.java │ └── TypePayment.java ├── prototype │ ├── Amex.java │ ├── PrototypeCard.java │ ├── PrototypeFactory.java │ └── Visa.java └── singlenton │ └── Card.java └── structural ├── adapter ├── Adapter.java ├── BlackCreditCard.java ├── CreditCard.java ├── GoldCreditCard.java ├── Payment.java └── Secure.java ├── bridge ├── ClassicCreditCard.java ├── CreditCard.java ├── ICreditCard.java ├── SecureCreditCard.java └── UnsecureCreditCard.java ├── composite ├── CuentaAhorro.java ├── CuentaComponent.java ├── CuentaComposite.java └── CuentaCorriente.java ├── decorator ├── Black.java ├── Credit.java ├── CreditDecorator.java ├── Gold.java ├── InternationalPaymentDecorator.java └── SecureDecorator.java ├── facade ├── Black.java ├── Credit.java ├── CreditMarket.java ├── Gold.java └── Silver.java ├── flyweight ├── Detective.java ├── Enemy.java ├── EnemyFactory.java └── Private.java └── proxy ├── AccessToInternet.java ├── Internet.java └── ProxyInternet.java /.idea/description.html: -------------------------------------------------------------------------------- 1 | Simple Java application that includes a class with main() method -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/project-template.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.idea/uiDesigner.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/workspace.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 73 | 74 | 75 | 77 | 78 | 81 | 82 | 83 | 138 | 139 | 140 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 168 | 169 | 172 | 173 | 174 | 175 | 178 | 179 | 182 | 183 | 186 | 187 | 190 | 191 | 194 | 195 | 196 | 197 | 200 | 201 | 204 | 205 | 208 | 209 | 212 | 213 | 216 | 217 | 220 | 221 | 224 | 225 | 226 | 227 | 230 | 231 | 234 | 235 | 238 | 239 | 242 | 243 | 246 | 247 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 261 | 262 | 265 | 266 | 267 | 268 | 271 | 272 | 275 | 276 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 299 | 300 | 301 | 302 | 303 | 318 | 319 | 320 | 346 | 347 | 348 | 373 | 374 | 375 | 388 | 389 | 390 | 397 | 400 | 402 | 403 | 404 | 405 | 406 | 407 | 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | 446 | 447 | 448 | 459 | 460 | 461 | 471 | 472 | 473 | 474 | 492 | 499 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 509 | 511 | 512 | 513 | 514 | 515 | 516 | 517 | 1563201350649 518 | 522 | 523 | 524 | 525 | 526 | 527 | 528 | 529 | 530 | 531 | 532 | 533 | 534 | 535 | 536 | 537 | 538 | 539 | 540 | 541 | 542 | 543 | 544 | 545 | 546 | 547 | 548 | 549 | 550 | 551 | 552 | 553 | 554 | 555 | 556 | 557 | 558 | 559 | 560 | 561 | 562 | 563 | 564 | 565 | 566 | 567 | 568 | 569 | 570 | 571 | 572 | 573 | 574 | 575 | 576 | 577 | 578 | 579 | 580 | 581 | 583 | 584 | 585 | 586 | 587 | 588 | 591 | 592 | 593 | 594 | 595 | 596 | 597 | 598 | 599 | 600 | 601 | 602 | 603 | 604 | 605 | 606 | 607 | 608 | 609 | 610 | 611 | 612 | 613 | 614 | 615 | 616 | 617 | 618 | 619 | 620 | 621 | 622 | 623 | 624 | 625 | 626 | 627 | 628 | 629 | 630 | 631 | 632 | 633 | 634 | 635 | 636 | 637 | 638 | 639 | 640 | 641 | 642 | 643 | 644 | 645 | 646 | 647 | 648 | 649 | 650 | 651 | 652 | 653 | 654 | 655 | 656 | 657 | 658 | 659 | 660 | 661 | 662 | 663 | 664 | 665 | 666 | 667 | 668 | 669 | 670 | 671 | 672 | 673 | 674 | 675 | 676 | 677 | 678 | 679 | 680 | 681 | 682 | 683 | 684 | 685 | 686 | 687 | 688 | 689 | 690 | 691 | 692 | 693 | 694 | 695 | 696 | 697 | 698 | 699 | 700 | 701 | 702 | 703 | 704 | 705 | 706 | 707 | 708 | 709 | 710 | 711 | 712 | 713 | 714 | 715 | 716 | 717 | 718 | 719 | 720 | 721 | 722 | 723 | 724 | 725 | 726 | 727 | 728 | 729 | 730 | 731 | 732 | 733 | 734 | 735 | 736 | 737 | 738 | 739 | 740 | 741 | 742 | 743 | 744 | 745 | 746 | 747 | 748 | 749 | 750 | 751 | 752 | 753 | 754 | 755 | 756 | 757 | 758 | 759 | 760 | 761 | 762 | 763 | 764 | 765 | 766 | 767 | 768 | 769 | 770 | 771 | 772 | 773 | 774 | 775 | 776 | 777 | 778 | 779 | 780 | 781 | 782 | 783 | 784 | 785 | 786 | 787 | 788 | 789 | 790 | 791 | 792 | 793 | 794 | 795 | 796 | 797 | 798 | 799 | 800 | 801 | 802 | 803 | 804 | 805 | 806 | 807 | 808 | 809 | 810 | 811 | 812 | 813 | 814 | 815 | 816 | 817 | 818 | 819 | 820 | 821 | 822 | 823 | 824 | 825 | 826 | 827 | 828 | 829 | 830 | 831 | 832 | 833 | 834 | 835 | 836 | 837 | 838 | 839 | 840 | 841 | 842 | 843 | 844 | 845 | 846 | 847 | 848 | 849 | 850 | 851 | 852 | 853 | 854 | 855 | 856 | 857 | 858 | 859 | 860 | 861 | 862 | 863 | 864 | 865 | 866 | 867 | 868 | 869 | 870 | 871 | 872 | 873 | 874 | 875 | 876 | 877 | 878 | 879 | 880 | 881 | 882 | 883 | 884 | 885 | 886 | 887 | 888 | 889 | 890 | 891 | 892 | 893 | 894 | 895 | 896 | 897 | 898 | 899 | 900 | 901 | 902 | 903 | 904 | 905 | 906 | 907 | 908 | 909 | 910 | 911 | 912 | 913 | 914 | 915 | 916 | 917 | 918 | 919 | 920 | 921 | 922 | 923 | 924 | 925 | 926 | 927 | 928 | 929 | 930 | 931 | 932 | 933 | 934 | 935 | 936 | 937 | 938 | 939 | 940 | 941 | 942 | 943 | 944 | 945 | 946 | 947 | 948 | 949 | 950 | 951 | 952 | 953 | 954 | 955 | 956 | 957 | 958 | 959 | 960 | 961 | 962 | 963 | 964 | 965 | 966 | 967 | 968 | 969 | 970 | 971 | 972 | 973 | 974 | 975 | 976 | 977 | 978 | 979 | 980 | 981 | 982 | 983 | 984 | 985 | 986 | 987 | 988 | 989 | 990 | 991 | 992 | 993 | 994 | 995 | 996 | 997 | 998 | 999 | 1000 | 1001 | 1002 | 1003 | 1004 | 1005 | 1006 | 1007 | 1008 | 1009 | 1010 | 1011 | 1012 | 1013 | 1014 | 1015 | 1016 | 1017 | 1018 | 1019 | 1020 | 1021 | 1022 | 1023 | 1024 | 1025 | 1026 | 1027 | 1028 | 1029 | 1030 | 1031 | 1032 | 1033 | 1034 | 1035 | 1036 | 1037 | 1038 | 1039 | 1040 | 1041 | 1042 | 1043 | 1044 | 1045 | 1046 | 1047 | 1048 | 1049 | 1050 | 1051 | 1052 | 1053 | 1054 | 1055 | 1056 | 1057 | 1058 | 1059 | 1060 | 1061 | 1062 | 1063 | 1064 | 1065 | 1066 | 1067 | 1068 | 1069 | 1070 | 1071 | 1072 | 1073 | 1074 | 1075 | 1076 | 1077 | 1078 | 1079 | 1080 | 1081 | 1082 | 1083 | 1084 | 1085 | 1086 | 1087 | 1088 | -------------------------------------------------------------------------------- /PatronJava.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/Main.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/Main.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/chainofresponsibility/ApproveLoanChain.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/chainofresponsibility/ApproveLoanChain.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/chainofresponsibility/Black.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/chainofresponsibility/Black.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/chainofresponsibility/Gold.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/chainofresponsibility/Gold.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/chainofresponsibility/Platinium.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/chainofresponsibility/Platinium.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/chainofresponsibility/Tarjeta.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/chainofresponsibility/Tarjeta.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/command/Command.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/command/Command.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/command/CreditCard.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/command/CreditCard.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/command/CreditCardActivateCommand.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/command/CreditCardActivateCommand.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/command/CreditCardDesactivateCommand.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/command/CreditCardDesactivateCommand.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/command/CreditCardInvoker.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/command/CreditCardInvoker.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/interpreter/AndExpression.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/interpreter/AndExpression.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/interpreter/Expression.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/interpreter/Expression.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/interpreter/OrExpression.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/interpreter/OrExpression.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/interpreter/TerminalExpression.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/interpreter/TerminalExpression.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/iterator/Card.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/iterator/Card.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/iterator/CardIterator.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/iterator/CardIterator.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/iterator/CardList.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/iterator/CardList.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/iterator/Iterator.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/iterator/Iterator.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/iterator/List.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/iterator/List.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/mediator/Colleage.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/mediator/Colleage.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/mediator/ConcreteColleage1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/mediator/ConcreteColleage1.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/mediator/ConcreteColleage2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/mediator/ConcreteColleage2.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/mediator/ConcreteMediator.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/mediator/ConcreteMediator.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/mediator/Mediator.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/mediator/Mediator.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/memento/Article.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/memento/Article.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/memento/ArticleMemento.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/memento/ArticleMemento.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/memento/Carataker.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/memento/Carataker.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/observer/Coche.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/observer/Coche.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/observer/MessagePublisher.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/observer/MessagePublisher.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/observer/Observer.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/observer/Observer.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/observer/Peaton.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/observer/Peaton.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/observer/Semaforo.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/observer/Semaforo.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/observer/Subject.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/observer/Subject.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/state/MobileAlertState.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/state/MobileAlertState.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/state/MobileAlertStateContext.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/state/MobileAlertStateContext.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/state/Silent.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/state/Silent.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/state/Sound.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/state/Sound.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/state/Vibration.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/state/Vibration.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/strategy/CapitalStrategyTextFormatter.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/strategy/CapitalStrategyTextFormatter.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/strategy/Context.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/strategy/Context.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/strategy/LowerStrategyTestFormatter.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/strategy/LowerStrategyTestFormatter.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/strategy/StragetyTextFormatter.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/strategy/StragetyTextFormatter.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/templatemethod/Payment.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/templatemethod/Payment.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/templatemethod/Paypal.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/templatemethod/Paypal.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/templatemethod/Visa.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/templatemethod/Visa.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/visitor/BlackCreditCardVisitor.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/visitor/BlackCreditCardVisitor.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/visitor/ClassicCreditCardVisitor.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/visitor/ClassicCreditCardVisitor.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/visitor/CreditCardVisitor.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/visitor/CreditCardVisitor.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/visitor/OfertaElement.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/visitor/OfertaElement.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/visitor/OfertaGasolina.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/visitor/OfertaGasolina.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/behavioral/visitor/OfertaVuelos.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/behavioral/visitor/OfertaVuelos.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/creational/abstractfactory/AbstractFactory.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/creational/abstractfactory/AbstractFactory.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/creational/abstractfactory/Card.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/creational/abstractfactory/Card.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/creational/abstractfactory/CardFactory.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/creational/abstractfactory/CardFactory.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/creational/abstractfactory/Credit.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/creational/abstractfactory/Credit.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/creational/abstractfactory/Debit.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/creational/abstractfactory/Debit.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/creational/abstractfactory/FactoryProvider.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/creational/abstractfactory/FactoryProvider.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/creational/abstractfactory/MasterCard.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/creational/abstractfactory/MasterCard.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/creational/abstractfactory/PaymentMethod.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/creational/abstractfactory/PaymentMethod.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/creational/abstractfactory/PaymentMethodFactory.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/creational/abstractfactory/PaymentMethodFactory.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/creational/abstractfactory/Visa.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/creational/abstractfactory/Visa.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/creational/builder/Card$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/creational/builder/Card$1.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/creational/builder/Card$CardBuilder.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/creational/builder/Card$CardBuilder.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/creational/builder/Card.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/creational/builder/Card.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/creational/factorymethod/CardPayment.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/creational/factorymethod/CardPayment.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/creational/factorymethod/GooglePayment.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/creational/factorymethod/GooglePayment.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/creational/factorymethod/Payment.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/creational/factorymethod/Payment.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/creational/factorymethod/PaymentFactory$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/creational/factorymethod/PaymentFactory$1.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/creational/factorymethod/PaymentFactory.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/creational/factorymethod/PaymentFactory.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/creational/factorymethod/TypePayment.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/creational/factorymethod/TypePayment.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/creational/prototype/Amex.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/creational/prototype/Amex.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/creational/prototype/PrototypeCard.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/creational/prototype/PrototypeCard.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/creational/prototype/PrototypeFactory$CartType.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/creational/prototype/PrototypeFactory$CartType.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/creational/prototype/PrototypeFactory.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/creational/prototype/PrototypeFactory.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/creational/prototype/Visa.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/creational/prototype/Visa.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/creational/singlenton/Card.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/creational/singlenton/Card.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/structural/adapter/Adapter.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/structural/adapter/Adapter.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/structural/adapter/BlackCreditCard.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/structural/adapter/BlackCreditCard.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/structural/adapter/CreditCard.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/structural/adapter/CreditCard.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/structural/adapter/GoldCreditCard.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/structural/adapter/GoldCreditCard.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/structural/adapter/Payment.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/structural/adapter/Payment.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/structural/adapter/Secure.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/structural/adapter/Secure.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/structural/bridge/ClassicCreditCard.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/structural/bridge/ClassicCreditCard.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/structural/bridge/CreditCard.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/structural/bridge/CreditCard.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/structural/bridge/ICreditCard.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/structural/bridge/ICreditCard.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/structural/bridge/SecureCreditCard.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/structural/bridge/SecureCreditCard.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/structural/bridge/UnsecureCreditCard.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/structural/bridge/UnsecureCreditCard.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/structural/composite/CuentaAhorro.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/structural/composite/CuentaAhorro.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/structural/composite/CuentaComponent.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/structural/composite/CuentaComponent.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/structural/composite/CuentaComposite.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/structural/composite/CuentaComposite.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/structural/composite/CuentaCorriente.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/structural/composite/CuentaCorriente.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/structural/decorator/Black.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/structural/decorator/Black.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/structural/decorator/Credit.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/structural/decorator/Credit.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/structural/decorator/CreditDecorator.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/structural/decorator/CreditDecorator.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/structural/decorator/Gold.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/structural/decorator/Gold.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/structural/decorator/InternationalPaymentDecorator.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/structural/decorator/InternationalPaymentDecorator.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/structural/decorator/SecureDecorator.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/structural/decorator/SecureDecorator.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/structural/facade/Black.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/structural/facade/Black.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/structural/facade/Credit.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/structural/facade/Credit.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/structural/facade/CreditMarket.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/structural/facade/CreditMarket.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/structural/facade/Gold.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/structural/facade/Gold.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/structural/facade/Silver.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/structural/facade/Silver.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/structural/flyweight/Detective.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/structural/flyweight/Detective.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/structural/flyweight/Enemy.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/structural/flyweight/Enemy.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/structural/flyweight/EnemyFactory.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/structural/flyweight/EnemyFactory.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/structural/flyweight/Private.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/structural/flyweight/Private.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/structural/proxy/AccessToInternet.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/structural/proxy/AccessToInternet.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/structural/proxy/Internet.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/structural/proxy/Internet.class -------------------------------------------------------------------------------- /out/production/PatronJava/com/company/structural/proxy/ProxyInternet.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/albertoandroid/PatronesDise-oJavaUdemy/4298718b03c1cfe6f4a36a529437c04e807e3f63/out/production/PatronJava/com/company/structural/proxy/ProxyInternet.class -------------------------------------------------------------------------------- /src/com/company/Main.java: -------------------------------------------------------------------------------- 1 | package com.company; 2 | 3 | import com.company.behavioral.chainofresponsibility.Tarjeta; 4 | import com.company.behavioral.command.CreditCard; 5 | import com.company.behavioral.command.CreditCardActivateCommand; 6 | import com.company.behavioral.command.CreditCardDesactivateCommand; 7 | import com.company.behavioral.command.CreditCardInvoker; 8 | import com.company.behavioral.interpreter.AndExpression; 9 | import com.company.behavioral.interpreter.Expression; 10 | import com.company.behavioral.interpreter.OrExpression; 11 | import com.company.behavioral.interpreter.TerminalExpression; 12 | import com.company.behavioral.iterator.*; 13 | import com.company.behavioral.mediator.ConcreteColleage1; 14 | import com.company.behavioral.mediator.ConcreteColleage2; 15 | import com.company.behavioral.mediator.ConcreteMediator; 16 | import com.company.behavioral.memento.Article; 17 | import com.company.behavioral.memento.ArticleMemento; 18 | import com.company.behavioral.memento.Carataker; 19 | import com.company.behavioral.observer.Coche; 20 | import com.company.behavioral.observer.MessagePublisher; 21 | import com.company.behavioral.observer.Peaton; 22 | import com.company.behavioral.observer.Semaforo; 23 | import com.company.behavioral.state.MobileAlertStateContext; 24 | import com.company.behavioral.state.Silent; 25 | import com.company.behavioral.state.Vibration; 26 | import com.company.behavioral.strategy.CapitalStrategyTextFormatter; 27 | import com.company.behavioral.strategy.Context; 28 | import com.company.behavioral.strategy.LowerStrategyTestFormatter; 29 | import com.company.behavioral.templatemethod.*; 30 | import com.company.behavioral.templatemethod.Visa; 31 | import com.company.behavioral.visitor.*; 32 | import com.company.creational.abstractfactory.*; 33 | import com.company.creational.abstractfactory.Card; 34 | import com.company.creational.factorymethod.Payment; 35 | import com.company.creational.factorymethod.PaymentFactory; 36 | import com.company.creational.factorymethod.TypePayment; 37 | import com.company.creational.prototype.PrototypeCard; 38 | import com.company.creational.prototype.PrototypeFactory; 39 | import com.company.structural.bridge.ClassicCreditCard; 40 | import com.company.structural.bridge.SecureCreditCard; 41 | import com.company.structural.bridge.UnsecureCreditCard; 42 | import com.company.structural.composite.CuentaAhorro; 43 | import com.company.structural.composite.CuentaComponent; 44 | import com.company.structural.composite.CuentaComposite; 45 | import com.company.structural.composite.CuentaCorriente; 46 | import com.company.structural.decorator.*; 47 | import com.company.structural.decorator.Credit; 48 | import com.company.structural.facade.CreditMarket; 49 | import com.company.structural.flyweight.Enemy; 50 | import com.company.structural.flyweight.EnemyFactory; 51 | import com.company.structural.proxy.Internet; 52 | import com.company.structural.proxy.ProxyInternet; 53 | 54 | import java.util.Random; 55 | 56 | import static com.company.creational.prototype.PrototypeFactory.CartType.AMEX; 57 | import static com.company.creational.prototype.PrototypeFactory.CartType.VISA; 58 | 59 | public class Main { 60 | 61 | public static void main(String[] args) { 62 | 63 | //CREACIONALES 64 | //probarFactoryMethod(); 65 | //probarAbstractFactory(); 66 | //probarBuilder(); 67 | //probarPrototype(); 68 | //probarSinglenton(); 69 | 70 | //COMPORTAMIENTO 71 | //probarChainOfResponsability(); 72 | //probarCommand(); 73 | //probarIterator(); 74 | //probarMediator(); 75 | //probarMemento(); 76 | //probarObserver(); 77 | //probarState(); 78 | //probarInterpreter(); 79 | //probarStrategy(); 80 | //probarTemplateMethod(); 81 | //probarVisitor(); 82 | 83 | //STRUCTURAL 84 | //probarAdapter(); 85 | //probarBridge(); 86 | //probarComposite(); 87 | //probarDecorator(); 88 | //probarFacade(); 89 | //probarFlyweight(); 90 | probarProxy(); 91 | 92 | } 93 | 94 | private static void probarProxy(){ 95 | Internet internet = new ProxyInternet(); 96 | try { 97 | internet.connectTo("udemy.com"); 98 | internet.connectTo("facebook.com"); 99 | }catch (Exception e){ 100 | System.out.println(e.getMessage()); 101 | } 102 | } 103 | 104 | private static void probarFlyweight(){ 105 | for(int i=0; i<15; i++){ 106 | Enemy enemy = EnemyFactory.getEnemy(getRandomEnemyType()); 107 | enemy.setWeapon(getRandomWeapon()); 108 | enemy.lifePoints(); 109 | } 110 | } 111 | 112 | private static String getRandomWeapon(){ 113 | Random r = new Random(); 114 | int randInt = r.nextInt(weapon.length); 115 | return weapon[randInt]; 116 | } 117 | 118 | private static String getRandomEnemyType(){ 119 | Random r = new Random(); 120 | int randInt = r.nextInt(enemyType.length); 121 | return enemyType[randInt]; 122 | } 123 | 124 | private static String[] enemyType = {"Private", "Detective"}; 125 | private static String[] weapon = {"Fusil", "Revolver", "Pistola", "Metralleta", "Lanza Granadas", "9mm"}; 126 | 127 | private static void probarFacade(){ 128 | CreditMarket creditMarket = new CreditMarket(); 129 | creditMarket.showCreditBlack(); 130 | creditMarket.showCreditGold(); 131 | creditMarket.showCreditSilver(); 132 | } 133 | 134 | private static void probarDecorator(){ 135 | com.company.structural.decorator.Credit gold = new Gold(); 136 | 137 | Credit blackInternationalPayment = new Black(); 138 | blackInternationalPayment = new InternationalPaymentDecorator(blackInternationalPayment); 139 | 140 | Credit goldSecureInternational = new Gold(); 141 | goldSecureInternational = new InternationalPaymentDecorator(goldSecureInternational); 142 | goldSecureInternational = new SecureDecorator(goldSecureInternational); 143 | 144 | System.out.println("----Tarjeta Gold con configuración----"); 145 | gold.showCredit(); 146 | 147 | System.out.println("----Tarjeta Black con configuración----"); 148 | blackInternationalPayment.showCredit(); 149 | 150 | System.out.println("----Tarjeta Gold2 con configuración----"); 151 | goldSecureInternational.showCredit(); 152 | 153 | } 154 | 155 | private static void probarComposite(){ 156 | CuentaComponent cuentaCorriente = new CuentaCorriente(1000.0, "Alberto"); 157 | CuentaComponent cuentaAhorro = new CuentaAhorro(20000.0, "Alberto"); 158 | 159 | CuentaComposite cuentaComposite = new CuentaComposite(); 160 | cuentaComposite.addCuenta(cuentaCorriente); 161 | cuentaComposite.addCuenta(cuentaAhorro); 162 | 163 | cuentaComposite.showAccountName(); 164 | cuentaComposite.getAmount(); 165 | } 166 | 167 | private static void probarBridge(){ 168 | com.company.structural.bridge.CreditCard classic = new ClassicCreditCard(new UnsecureCreditCard()); 169 | classic.realizarPago(); 170 | 171 | classic = new ClassicCreditCard(new SecureCreditCard()); 172 | classic.realizarPago(); 173 | } 174 | 175 | private static void probarAdapter(){ 176 | com.company.structural.adapter.CreditCard creditCard = new com.company.structural.adapter.CreditCard(); 177 | creditCard.pay("classic"); 178 | creditCard.pay("gold"); 179 | creditCard.pay("black"); 180 | creditCard.pay("silver"); 181 | } 182 | 183 | private static void probarVisitor(){ 184 | OfertaElement ofertaElement = new OfertaGasolina(); 185 | ofertaElement.accept(new BlackCreditCardVisitor()); 186 | 187 | ofertaElement = new OfertaVuelos(); 188 | ofertaElement.accept(new ClassicCreditCardVisitor()); 189 | } 190 | 191 | private static void probarTemplateMethod(){ 192 | com.company.behavioral.templatemethod.Payment payment = new Visa(); 193 | payment.makePayment(); 194 | 195 | payment = new Paypal(); 196 | payment.makePayment(); 197 | } 198 | 199 | private static void probarStrategy(){ 200 | Context context = new Context(new CapitalStrategyTextFormatter()); 201 | context.publishText("Este texto será convertido a MAYUSCULAS a través del algoritmo"); 202 | 203 | context = new Context(new LowerStrategyTestFormatter()); 204 | context.publishText("Esto texto SERA CONVERTIDO a MINUSCULAS a través del algortimo"); 205 | } 206 | 207 | private static void probarInterpreter(){ 208 | Expression cero = new TerminalExpression("0"); 209 | Expression uno = new TerminalExpression("1"); 210 | 211 | Expression containBoolean = new OrExpression(cero, uno); 212 | Expression containsOneAndCero = new AndExpression(cero, uno); 213 | 214 | System.out.println(containBoolean.interpret("cero")); 215 | System.out.println(containBoolean.interpret("0")); 216 | 217 | System.out.println(containsOneAndCero.interpret("0")); 218 | System.out.println(containsOneAndCero.interpret("0, 1")); 219 | } 220 | 221 | private static void probarState(){ 222 | MobileAlertStateContext context = new MobileAlertStateContext(); 223 | context.alert(); 224 | context.alert(); 225 | context.setState(new Vibration()); 226 | context.alert(); 227 | context.alert(); 228 | context.setState(new Silent()); 229 | context.alert(); 230 | context.alert(); 231 | } 232 | 233 | private static void probarObserver(){ 234 | Coche coche = new Coche(); 235 | Peaton peaton = new Peaton(); 236 | MessagePublisher messagePublisher = new MessagePublisher(); 237 | 238 | messagePublisher.attach(coche); 239 | messagePublisher.attach(peaton); 240 | messagePublisher.notifyUpdate(new Semaforo("ROJO_COCHE")); 241 | try{ 242 | Thread.sleep(2000); 243 | }catch (Exception e){ 244 | 245 | } 246 | messagePublisher.notifyUpdate(new Semaforo("VERDE_COCHE")); 247 | } 248 | 249 | private static void probarMemento(){ 250 | Carataker carataker = new Carataker(); 251 | Article article = new Article("Alberto", "Memento es una pelicula"); 252 | article.setText(article.getText() + " de Nolan"); 253 | System.out.println(article.getText()); 254 | 255 | carataker.addMemento(article.createMemento()); 256 | article.setText(article.getText() + " protagonizada por Guy Pearce"); 257 | System.out.println(article.getText()); 258 | 259 | carataker.addMemento(article.createMemento()); 260 | 261 | article.setText(article.getText() + " y Leonardo DiCaprio"); 262 | System.out.println(article.getText()); 263 | 264 | ArticleMemento memento1 = carataker.getMemento(0); 265 | ArticleMemento memento2 = carataker.getMemento(1); 266 | 267 | article.restoreMemento(memento1); 268 | System.out.println(article.getText()); 269 | 270 | 271 | article.restoreMemento(memento2); 272 | System.out.println(article.getText()); 273 | 274 | article.setText(article.getText() + " del año "); 275 | 276 | } 277 | 278 | private static void probarMediator(){ 279 | ConcreteMediator mediator = new ConcreteMediator(); 280 | ConcreteColleage1 user1 = new ConcreteColleage1(mediator); 281 | ConcreteColleage2 user2 = new ConcreteColleage2(mediator); 282 | 283 | mediator.setUser1(user1); 284 | mediator.setUser2(user2); 285 | 286 | user1.send("Hola soy user1"); 287 | user2.send("Hola user1, soy user2"); 288 | } 289 | 290 | private static void probarIterator(){ 291 | com.company.behavioral.iterator.Card[] cards = new com.company.behavioral.iterator.Card[5]; 292 | cards[0] = new com.company.behavioral.iterator.Card("VISA"); 293 | cards[1] = new com.company.behavioral.iterator.Card("AMEX"); 294 | cards[2] = new com.company.behavioral.iterator.Card("MASTER CARD"); 295 | cards[3] = new com.company.behavioral.iterator.Card("GOOGLE CARD"); 296 | cards[4] = new com.company.behavioral.iterator.Card("APPLE CARD"); 297 | 298 | List lista = new CardList(cards); 299 | Iterator iterator = lista.iterator(); 300 | 301 | while (iterator.hasNext()){ 302 | com.company.behavioral.iterator.Card tarjeta = (com.company.behavioral.iterator.Card)iterator.next(); 303 | System.out.println(tarjeta.getType()); 304 | } 305 | 306 | } 307 | 308 | 309 | 310 | private static void probarCommand(){ 311 | CreditCard creditCard = new CreditCard(); 312 | CreditCard creditCardDeactivate= new CreditCard(); 313 | 314 | CreditCardInvoker invoker = new CreditCardInvoker(); 315 | 316 | invoker.setCommand(new CreditCardActivateCommand(creditCard)); 317 | invoker.run(); 318 | System.out.println("--------------------"); 319 | invoker.setCommand(new CreditCardDesactivateCommand(creditCardDeactivate)); 320 | invoker.run(); 321 | } 322 | 323 | private static void probarChainOfResponsability(){ 324 | Tarjeta tarjeta = new Tarjeta(); 325 | tarjeta.crediCardRequest(100000); 326 | } 327 | 328 | private static void probarSinglenton(){ 329 | com.company.creational.singlenton.Card.getINSTANCE().setCardNumber("1234-1234-1234-1324"); 330 | System.out.println(com.company.creational.singlenton.Card.getINSTANCE().getCardNumber()); 331 | } 332 | 333 | private static void probarPrototype(){ 334 | PrototypeFactory.loadCard(); 335 | try { 336 | PrototypeCard visa = PrototypeFactory.getInstance(VISA); 337 | visa.getCard(); 338 | 339 | PrototypeCard amex = PrototypeFactory.getInstance(AMEX); 340 | amex.getCard(); 341 | 342 | }catch (CloneNotSupportedException e){ 343 | e.printStackTrace(); 344 | } 345 | } 346 | 347 | private static void probarBuilder(){ 348 | com.company.creational.builder.Card card = new com.company.creational.builder.Card.CardBuilder("VISA", 349 | "0000 1111 2222 3333") 350 | .name("Alberto") 351 | .expires(2030) 352 | .credit(true) 353 | .build(); 354 | 355 | System.out.println(card); 356 | 357 | com.company.creational.builder.Card card2 = new com.company.creational.builder.Card.CardBuilder("AMEX", 358 | "9999 9999 9999 9999") 359 | .build(); 360 | 361 | System.out.println(card2); 362 | } 363 | 364 | private static void probarAbstractFactory(){ 365 | AbstractFactory abstractFactory = FactoryProvider.getFactory("Card"); 366 | Card tarjeta = (Card) abstractFactory.create("VISA"); 367 | 368 | AbstractFactory abstractFactory1 = FactoryProvider.getFactory("PaymentMethod"); 369 | PaymentMethod paymentMethod = (PaymentMethod) abstractFactory1.create("DEBIT"); 370 | 371 | System.out.println("Un tarjeta de tipo: " + tarjeta.getCardType() + " con el metodo de pago: " + paymentMethod.doPayment()); 372 | } 373 | 374 | private static void probarFactoryMethod(){ 375 | Payment payment = PaymentFactory.buildPayment(TypePayment.CARD); 376 | payment.doPayment(); 377 | } 378 | } 379 | -------------------------------------------------------------------------------- /src/com/company/behavioral/chainofresponsibility/ApproveLoanChain.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.chainofresponsibility; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 30/7/19. 5 | */ 6 | public interface ApproveLoanChain { 7 | void setNext(ApproveLoanChain loan); 8 | ApproveLoanChain getNext(); 9 | void crediCardRequest(int totalLoan); 10 | } 11 | -------------------------------------------------------------------------------- /src/com/company/behavioral/chainofresponsibility/Black.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.chainofresponsibility; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 30/7/19. 5 | */ 6 | public class Black implements ApproveLoanChain { 7 | private ApproveLoanChain next; 8 | 9 | @Override 10 | public void setNext(ApproveLoanChain loan) { 11 | next = loan; 12 | } 13 | 14 | @Override 15 | public ApproveLoanChain getNext() { 16 | return next; 17 | } 18 | 19 | @Override 20 | public void crediCardRequest(int totalLoan) { 21 | if(totalLoan > 50000){ 22 | System.out.println("Esta solicitud de tarjeta de crédito la maneja la tarjeta Black"); 23 | } else { 24 | next.crediCardRequest(totalLoan); 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/com/company/behavioral/chainofresponsibility/Gold.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.chainofresponsibility; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 30/7/19. 5 | */ 6 | public class Gold implements ApproveLoanChain { 7 | 8 | private ApproveLoanChain next; 9 | 10 | @Override 11 | public void setNext(ApproveLoanChain loan) { 12 | next = loan; 13 | } 14 | 15 | @Override 16 | public ApproveLoanChain getNext() { 17 | return next; 18 | } 19 | 20 | @Override 21 | public void crediCardRequest(int totalLoan) { 22 | if(totalLoan <= 10000){ 23 | System.out.println("Esta solicitud de tarjeta de crédito la maneja la tarjeta Gold"); 24 | } else { 25 | next.crediCardRequest(totalLoan); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/com/company/behavioral/chainofresponsibility/Platinium.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.chainofresponsibility; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 30/7/19. 5 | */ 6 | public class Platinium implements ApproveLoanChain { 7 | private ApproveLoanChain next; 8 | 9 | @Override 10 | public void setNext(ApproveLoanChain loan) { 11 | next = loan; 12 | } 13 | 14 | @Override 15 | public ApproveLoanChain getNext() { 16 | return next; 17 | } 18 | 19 | @Override 20 | public void crediCardRequest(int totalLoan) { 21 | if(totalLoan > 10000 && totalLoan <=50000){ 22 | System.out.println("Esta solicitud de tarjeta de crédito la maneja la tarjeta Platinium"); 23 | } else { 24 | next.crediCardRequest(totalLoan); 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/com/company/behavioral/chainofresponsibility/Tarjeta.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.chainofresponsibility; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 30/7/19. 5 | */ 6 | public class Tarjeta implements ApproveLoanChain { 7 | 8 | private ApproveLoanChain next; 9 | 10 | @Override 11 | public void setNext(ApproveLoanChain loan) { 12 | next = loan; 13 | } 14 | 15 | @Override 16 | public ApproveLoanChain getNext() { 17 | return next; 18 | } 19 | 20 | @Override 21 | public void crediCardRequest(int totalLoan) { 22 | Gold gold = new Gold(); 23 | this.setNext(gold); 24 | 25 | Platinium platinium = new Platinium(); 26 | gold.setNext(platinium); 27 | 28 | Black black = new Black(); 29 | platinium.setNext(black); 30 | 31 | next.crediCardRequest(totalLoan); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/com/company/behavioral/command/Command.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.command; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 30/7/19. 5 | */ 6 | public interface Command { 7 | void execute(); 8 | } 9 | -------------------------------------------------------------------------------- /src/com/company/behavioral/command/CreditCard.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.command; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 30/7/19. 5 | */ 6 | public class CreditCard { 7 | 8 | public void sendPinNumberToCustomer(){ 9 | System.out.println("El pin number ha sido enviado al cliente."); 10 | } 11 | public void sendSMSToCustomerActivate(){ 12 | System.out.println("Enviado SMS al cliente informando que su tarjeta ha sido activada. Ponte en contacto si no la has recibido"); 13 | } 14 | public void activate(){ 15 | System.out.println("La tarjeta ha sido activada"); 16 | } 17 | public void desactivate(){ 18 | System.out.println("La tarjeta ha sido desactivada"); 19 | } 20 | public void sendSMSToCustomerDesactivate(){ 21 | System.out.println("Enviado SMS al cliente informando de que su tarjeta ha sido desactivada"); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/com/company/behavioral/command/CreditCardActivateCommand.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.command; 2 | 3 | import com.company.creational.abstractfactory.Credit; 4 | 5 | /** 6 | * Created by albertopalomarrobledo on 30/7/19. 7 | */ 8 | public class CreditCardActivateCommand implements Command{ 9 | 10 | CreditCard creditCard; 11 | public CreditCardActivateCommand(CreditCard creditCard){ 12 | this.creditCard = creditCard; 13 | } 14 | 15 | @Override 16 | public void execute() { 17 | creditCard.sendPinNumberToCustomer(); 18 | creditCard.activate(); 19 | creditCard.sendSMSToCustomerActivate(); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/com/company/behavioral/command/CreditCardDesactivateCommand.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.command; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 30/7/19. 5 | */ 6 | public class CreditCardDesactivateCommand implements Command { 7 | 8 | CreditCard creditCard; 9 | public CreditCardDesactivateCommand(CreditCard creditCard){ 10 | this.creditCard = creditCard; 11 | } 12 | 13 | @Override 14 | public void execute() { 15 | creditCard.desactivate(); 16 | creditCard.sendSMSToCustomerDesactivate(); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/com/company/behavioral/command/CreditCardInvoker.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.command; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 30/7/19. 5 | */ 6 | public class CreditCardInvoker { 7 | 8 | private Command command; 9 | public CreditCardInvoker(){} 10 | 11 | public void setCommand(Command command){ 12 | this.command = command; 13 | } 14 | 15 | public void run(){ 16 | command.execute(); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/com/company/behavioral/interpreter/AndExpression.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.interpreter; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 1/8/19. 5 | */ 6 | public class AndExpression implements Expression { 7 | 8 | private Expression expression1; 9 | private Expression expression2; 10 | 11 | public AndExpression(Expression expression1, Expression expression2){ 12 | this.expression1 = expression1; 13 | this.expression2 = expression2; 14 | } 15 | 16 | @Override 17 | public boolean interpret(String context) { 18 | return expression1.interpret(context) && expression2.interpret(context); 19 | } 20 | } 21 | 22 | -------------------------------------------------------------------------------- /src/com/company/behavioral/interpreter/Expression.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.interpreter; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 1/8/19. 5 | */ 6 | public interface Expression { 7 | boolean interpret(String context); 8 | } 9 | -------------------------------------------------------------------------------- /src/com/company/behavioral/interpreter/OrExpression.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.interpreter; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 1/8/19. 5 | */ 6 | public class OrExpression implements Expression { 7 | 8 | private Expression expression1; 9 | private Expression expression2; 10 | 11 | public OrExpression(Expression expression1, Expression expression2){ 12 | this.expression1 = expression1; 13 | this.expression2 = expression2; 14 | } 15 | 16 | @Override 17 | public boolean interpret(String context) { 18 | return expression1.interpret(context) || expression2.interpret(context); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/com/company/behavioral/interpreter/TerminalExpression.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.interpreter; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 1/8/19. 5 | */ 6 | public class TerminalExpression implements Expression { 7 | 8 | private String text; 9 | 10 | public TerminalExpression(String text){ 11 | this.text = text; 12 | } 13 | 14 | @Override 15 | public boolean interpret(String context) { 16 | if(context.contains(text)){ 17 | return true; 18 | } 19 | return false; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/com/company/behavioral/iterator/Card.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.iterator; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 31/7/19. 5 | */ 6 | public class Card { 7 | 8 | private String type; 9 | 10 | public Card(String type) { 11 | this.type = type; 12 | } 13 | 14 | public String getType() { 15 | return type; 16 | } 17 | 18 | public void setType(String type) { 19 | this.type = type; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/com/company/behavioral/iterator/CardIterator.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.iterator; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 31/7/19. 5 | */ 6 | public class CardIterator implements Iterator { 7 | 8 | private Card[] cards; 9 | private int position; 10 | 11 | public CardIterator(Card[] cards){ 12 | this.cards = cards; 13 | position = 0; 14 | } 15 | 16 | @Override 17 | public boolean hasNext() { 18 | if(position >= cards.length){ 19 | return false; 20 | } 21 | return true; 22 | } 23 | 24 | @Override 25 | public Object next() { 26 | return cards[position++]; 27 | } 28 | 29 | @Override 30 | public Object currentItem() { 31 | return cards[position]; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/com/company/behavioral/iterator/CardList.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.iterator; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 31/7/19. 5 | */ 6 | public class CardList implements List { 7 | 8 | private Card[] cards; 9 | 10 | public CardList(Card[] cards){ 11 | this.cards = cards; 12 | } 13 | 14 | @Override 15 | public Iterator iterator() { 16 | return new CardIterator(cards); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/com/company/behavioral/iterator/Iterator.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.iterator; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 31/7/19. 5 | */ 6 | public interface Iterator { 7 | 8 | boolean hasNext(); 9 | 10 | Object next(); 11 | 12 | Object currentItem(); 13 | } 14 | -------------------------------------------------------------------------------- /src/com/company/behavioral/iterator/List.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.iterator; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 31/7/19. 5 | */ 6 | public interface List { 7 | 8 | Iterator iterator(); 9 | } 10 | -------------------------------------------------------------------------------- /src/com/company/behavioral/mediator/Colleage.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.mediator; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 31/7/19. 5 | */ 6 | public abstract class Colleage { 7 | protected Mediator mediator; 8 | 9 | public Colleage(Mediator mediator){ 10 | this.mediator = mediator; 11 | } 12 | 13 | public abstract void send(String message); 14 | public abstract void messageReceived(String message); 15 | } 16 | -------------------------------------------------------------------------------- /src/com/company/behavioral/mediator/ConcreteColleage1.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.mediator; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 31/7/19. 5 | */ 6 | public class ConcreteColleage1 extends Colleage { 7 | 8 | public ConcreteColleage1(Mediator mediator){ 9 | super(mediator); 10 | } 11 | 12 | @Override 13 | public void send(String message) { 14 | mediator.send(message, this); 15 | } 16 | 17 | @Override 18 | public void messageReceived(String message) { 19 | System.out.println("User1 ha recibido el siguiente mensaje: " + message); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/com/company/behavioral/mediator/ConcreteColleage2.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.mediator; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 31/7/19. 5 | */ 6 | public class ConcreteColleage2 extends Colleage { 7 | 8 | public ConcreteColleage2(Mediator mediator){ 9 | super(mediator); 10 | } 11 | 12 | @Override 13 | public void send(String message) { 14 | mediator.send(message, this); 15 | } 16 | 17 | @Override 18 | public void messageReceived(String message) { 19 | System.out.println("User2 ha recibido el siguiente mensaje: " + message); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/com/company/behavioral/mediator/ConcreteMediator.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.mediator; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 31/7/19. 5 | */ 6 | public class ConcreteMediator implements Mediator { 7 | 8 | private ConcreteColleage1 user1; 9 | private ConcreteColleage2 user2; 10 | 11 | public void setUser1(ConcreteColleage1 colleage1){ 12 | user1 = colleage1; 13 | } 14 | 15 | public void setUser2(ConcreteColleage2 colleage2){ 16 | user2 = colleage2; 17 | } 18 | 19 | @Override 20 | public void send(String message, Colleage colleage) { 21 | if(colleage==user1){ 22 | user2.messageReceived(message); 23 | }else if(colleage == user2){ 24 | user1.messageReceived(message); 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/com/company/behavioral/mediator/Mediator.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.mediator; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 31/7/19. 5 | */ 6 | public interface Mediator { 7 | void send(String message, Colleage colleage); 8 | } 9 | -------------------------------------------------------------------------------- /src/com/company/behavioral/memento/Article.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.memento; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 31/7/19. 5 | */ 6 | public class Article { 7 | private String autor; 8 | private String text; 9 | 10 | public Article(String autor, String text){ 11 | this.autor = autor; 12 | this.text = text; 13 | } 14 | 15 | public ArticleMemento createMemento(){ 16 | ArticleMemento memento = new ArticleMemento(autor, text); 17 | return memento; 18 | } 19 | 20 | public void restoreMemento(ArticleMemento memento){ 21 | this.autor = memento.getAutor(); 22 | this.text = memento.getText(); 23 | } 24 | 25 | 26 | public String getAutor() { 27 | return autor; 28 | } 29 | 30 | public void setAutor(String autor) { 31 | this.autor = autor; 32 | } 33 | 34 | public String getText() { 35 | return text; 36 | } 37 | 38 | public void setText(String text) { 39 | this.text = text; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/com/company/behavioral/memento/ArticleMemento.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.memento; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 31/7/19. 5 | */ 6 | public class ArticleMemento { 7 | 8 | private String autor; 9 | private String text; 10 | 11 | public ArticleMemento(String autor, String text){ 12 | this.autor = autor; 13 | this.text = text; 14 | } 15 | 16 | public String getAutor() { 17 | return autor; 18 | } 19 | 20 | public String getText() { 21 | return text; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/com/company/behavioral/memento/Carataker.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.memento; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | /** 7 | * Created by albertopalomarrobledo on 31/7/19. 8 | */ 9 | public class Carataker { 10 | 11 | private List estados = new ArrayList<>(); 12 | 13 | public void addMemento(ArticleMemento memento){ 14 | estados.add(memento); 15 | } 16 | 17 | public ArticleMemento getMemento(int index){ 18 | return estados.get(index); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/com/company/behavioral/observer/Coche.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.observer; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 31/7/19. 5 | */ 6 | public class Coche implements Observer { 7 | 8 | @Override 9 | public void update(Semaforo semaforo) { 10 | if(semaforo.status.equals("ROJO_COCHE")){ 11 | System.out.println("Semaforo Rojo para Coche: -> Coche NO puede pasar"); 12 | }else{ 13 | System.out.println("Semaforo Verde para Coche: -> Coche SI puede pasar"); 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/com/company/behavioral/observer/MessagePublisher.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.observer; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | /** 7 | * Created by albertopalomarrobledo on 31/7/19. 8 | */ 9 | public class MessagePublisher implements Subject { 10 | 11 | private List observers = new ArrayList<>(); 12 | 13 | @Override 14 | public void attach(Observer o) { 15 | observers.add(o); 16 | } 17 | 18 | @Override 19 | public void dettach(Observer o) { 20 | observers.remove(o); 21 | } 22 | 23 | @Override 24 | public void notifyUpdate(Semaforo semaforo) { 25 | for(Observer o: observers){ 26 | o.update(semaforo); 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/com/company/behavioral/observer/Observer.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.observer; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 31/7/19. 5 | */ 6 | public interface Observer { 7 | void update(Semaforo semaforo); 8 | } 9 | -------------------------------------------------------------------------------- /src/com/company/behavioral/observer/Peaton.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.observer; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 31/7/19. 5 | */ 6 | public class Peaton implements Observer { 7 | 8 | @Override 9 | public void update(Semaforo semaforo) { 10 | if(semaforo.status.equals("ROJO_COCHE")){ 11 | System.out.println("Semaforo Verde para Peaton: -> Peaton SI puede pasar"); 12 | }else{ 13 | System.out.println("Semaforo Rojo para Peaton: -> Peaton NO puede pasar"); 14 | 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/com/company/behavioral/observer/Semaforo.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.observer; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 31/7/19. 5 | */ 6 | public class Semaforo { 7 | public String status; 8 | 9 | public Semaforo(String status){ 10 | this.status = status; 11 | } 12 | 13 | public String getStatus(){ 14 | return status; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/com/company/behavioral/observer/Subject.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.observer; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 31/7/19. 5 | */ 6 | public interface Subject { 7 | void attach(Observer o); 8 | void dettach(Observer o); 9 | void notifyUpdate(Semaforo semaforo); 10 | } 11 | -------------------------------------------------------------------------------- /src/com/company/behavioral/state/MobileAlertState.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.state; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 31/7/19. 5 | */ 6 | public interface MobileAlertState { 7 | void alert(MobileAlertStateContext context); 8 | } 9 | -------------------------------------------------------------------------------- /src/com/company/behavioral/state/MobileAlertStateContext.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.state; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 31/7/19. 5 | */ 6 | public class MobileAlertStateContext { 7 | 8 | private MobileAlertState currentState; 9 | 10 | public MobileAlertStateContext(){ 11 | currentState = new Sound(); 12 | } 13 | 14 | public void setState(MobileAlertState state){ 15 | currentState = state; 16 | } 17 | 18 | public void alert(){ 19 | currentState.alert(this); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/com/company/behavioral/state/Silent.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.state; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 31/7/19. 5 | */ 6 | public class Silent implements MobileAlertState{ 7 | @Override 8 | public void alert(MobileAlertStateContext context) { 9 | System.out.println("Silencio...Pantalla Iluminada..."); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/com/company/behavioral/state/Sound.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.state; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 31/7/19. 5 | */ 6 | public class Sound implements MobileAlertState { 7 | @Override 8 | public void alert(MobileAlertStateContext context) { 9 | System.out.println("Ring...Ring..."); 10 | 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/com/company/behavioral/state/Vibration.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.state; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 31/7/19. 5 | */ 6 | public class Vibration implements MobileAlertState { 7 | @Override 8 | public void alert(MobileAlertStateContext context) { 9 | System.out.println("Vibrando...Vibrando..."); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/com/company/behavioral/strategy/CapitalStrategyTextFormatter.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.strategy; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 1/8/19. 5 | */ 6 | public class CapitalStrategyTextFormatter implements StragetyTextFormatter { 7 | 8 | @Override 9 | public void format(String text) { 10 | System.out.println("Texto en Mayusculas: " + text.toUpperCase()); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/com/company/behavioral/strategy/Context.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.strategy; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 1/8/19. 5 | */ 6 | public class Context { 7 | private StragetyTextFormatter stragetyTextFormatter; 8 | 9 | public Context(StragetyTextFormatter stragetyTextFormatter){ 10 | this.stragetyTextFormatter = stragetyTextFormatter; 11 | } 12 | 13 | public void publishText(String text){ 14 | stragetyTextFormatter.format(text); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/com/company/behavioral/strategy/LowerStrategyTestFormatter.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.strategy; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 1/8/19. 5 | */ 6 | public class LowerStrategyTestFormatter implements StragetyTextFormatter { 7 | @Override 8 | public void format(String text) { 9 | System.out.println("Texto en Minusculas: " + text.toLowerCase()); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/com/company/behavioral/strategy/StragetyTextFormatter.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.strategy; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 1/8/19. 5 | */ 6 | public interface StragetyTextFormatter { 7 | void format(String text); 8 | } 9 | -------------------------------------------------------------------------------- /src/com/company/behavioral/templatemethod/Payment.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.templatemethod; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 1/8/19. 5 | */ 6 | public abstract class Payment { 7 | 8 | abstract void initialize(); 9 | abstract void startPayment(); 10 | abstract void endPayment(); 11 | 12 | public final void makePayment(){ 13 | initialize(); 14 | startPayment(); 15 | endPayment(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/com/company/behavioral/templatemethod/Paypal.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.templatemethod; 2 | 3 | import com.company.creational.abstractfactory.PaymentMethod; 4 | 5 | /** 6 | * Created by albertopalomarrobledo on 1/8/19. 7 | */ 8 | public class Paypal extends Payment{ 9 | 10 | @Override 11 | void initialize() { 12 | System.out.println("Inicializando el pago con Paypal..."); 13 | } 14 | 15 | @Override 16 | void startPayment() { 17 | System.out.println("Realizando el pago con Paypal..."); 18 | } 19 | 20 | @Override 21 | void endPayment() { 22 | System.out.println("Finalizado el pago a través de los servidores Paypal..."); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/com/company/behavioral/templatemethod/Visa.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.templatemethod; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 1/8/19. 5 | */ 6 | public class Visa extends Payment{ 7 | @Override 8 | void initialize() { 9 | System.out.println("Inicializando el pago con Visa..."); 10 | } 11 | 12 | @Override 13 | void startPayment() { 14 | System.out.println("Realizando el pago con Visa..."); 15 | } 16 | 17 | @Override 18 | void endPayment() { 19 | System.out.println("Finalizado el pago a través de los servidores Visa..."); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/com/company/behavioral/visitor/BlackCreditCardVisitor.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.visitor; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 2/8/19. 5 | */ 6 | public class BlackCreditCardVisitor implements CreditCardVisitor { 7 | @Override 8 | public void ofertaGasolina(OfertaGasolina ofertaGasolina) { 9 | System.out.println("Descuento del 10 en gasolina por tener tu tarjeta black"); 10 | } 11 | 12 | @Override 13 | public void ofertaVuelos(OfertaVuelos ofertaVuelos) { 14 | System.out.println("Descuento del 25 en gasolina por tener tu tarjeta black"); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/com/company/behavioral/visitor/ClassicCreditCardVisitor.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.visitor; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 2/8/19. 5 | */ 6 | public class ClassicCreditCardVisitor implements CreditCardVisitor{ 7 | 8 | @Override 9 | public void ofertaGasolina(OfertaGasolina ofertaGasolina) { 10 | System.out.println("Descuento del 3% en Gasolina con tu tarjeta Clasica"); 11 | } 12 | 13 | @Override 14 | public void ofertaVuelos(OfertaVuelos ofertaVuelos) { 15 | System.out.println("Descuento del 5% en Gasolina con tu tarjeta Clasica"); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/com/company/behavioral/visitor/CreditCardVisitor.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.visitor; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 2/8/19. 5 | */ 6 | public interface CreditCardVisitor { 7 | void ofertaGasolina(OfertaGasolina ofertaGasolina); 8 | void ofertaVuelos(OfertaVuelos ofertaVuelos); 9 | } 10 | -------------------------------------------------------------------------------- /src/com/company/behavioral/visitor/OfertaElement.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.visitor; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 2/8/19. 5 | */ 6 | public interface OfertaElement { 7 | void accept(CreditCardVisitor visitor); 8 | } 9 | -------------------------------------------------------------------------------- /src/com/company/behavioral/visitor/OfertaGasolina.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.visitor; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 2/8/19. 5 | */ 6 | public class OfertaGasolina implements OfertaElement { 7 | @Override 8 | public void accept(CreditCardVisitor visitor) { 9 | visitor.ofertaGasolina(this); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/com/company/behavioral/visitor/OfertaVuelos.java: -------------------------------------------------------------------------------- 1 | package com.company.behavioral.visitor; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 2/8/19. 5 | */ 6 | public class OfertaVuelos implements OfertaElement { 7 | @Override 8 | public void accept(CreditCardVisitor visitor) { 9 | visitor.ofertaVuelos(this); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/com/company/creational/abstractfactory/AbstractFactory.java: -------------------------------------------------------------------------------- 1 | package com.company.creational.abstractfactory; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 18/7/19. 5 | */ 6 | public interface AbstractFactory { 7 | T create(String type); 8 | } 9 | -------------------------------------------------------------------------------- /src/com/company/creational/abstractfactory/Card.java: -------------------------------------------------------------------------------- 1 | package com.company.creational.abstractfactory; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 18/7/19. 5 | */ 6 | public interface Card { 7 | String getCardType(); 8 | String getCardNumber(); 9 | } 10 | -------------------------------------------------------------------------------- /src/com/company/creational/abstractfactory/CardFactory.java: -------------------------------------------------------------------------------- 1 | package com.company.creational.abstractfactory; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 18/7/19. 5 | */ 6 | public class CardFactory implements AbstractFactory { 7 | @Override 8 | public Card create(String type) { 9 | if("VISA".equals(type)){ 10 | return new Visa(); 11 | }else if ("MASTERCARD".equals(type)){ 12 | return new MasterCard(); 13 | } 14 | return null; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/com/company/creational/abstractfactory/Credit.java: -------------------------------------------------------------------------------- 1 | package com.company.creational.abstractfactory; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 18/7/19. 5 | */ 6 | public class Credit implements PaymentMethod { 7 | @Override 8 | public String doPayment() { 9 | return "Pago a Crédito"; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/com/company/creational/abstractfactory/Debit.java: -------------------------------------------------------------------------------- 1 | package com.company.creational.abstractfactory; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 18/7/19. 5 | */ 6 | public class Debit implements PaymentMethod { 7 | @Override 8 | public String doPayment() { 9 | return "Pago a Débito"; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/com/company/creational/abstractfactory/FactoryProvider.java: -------------------------------------------------------------------------------- 1 | package com.company.creational.abstractfactory; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 18/7/19. 5 | */ 6 | public class FactoryProvider { 7 | public static AbstractFactory getFactory(String chooseFactory){ 8 | if("Card".equals(chooseFactory)){ 9 | return new CardFactory(); 10 | }else if("PaymentMethod".equals(chooseFactory)){ 11 | return new PaymentMethodFactory(); 12 | } 13 | return null; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/com/company/creational/abstractfactory/MasterCard.java: -------------------------------------------------------------------------------- 1 | package com.company.creational.abstractfactory; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 18/7/19. 5 | */ 6 | public class MasterCard implements Card { 7 | @Override 8 | public String getCardType() { 9 | return "MASTERCARD"; 10 | } 11 | 12 | @Override 13 | public String getCardNumber() { 14 | return "0000 0000 MAST CARD"; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/com/company/creational/abstractfactory/PaymentMethod.java: -------------------------------------------------------------------------------- 1 | package com.company.creational.abstractfactory; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 18/7/19. 5 | */ 6 | public interface PaymentMethod { 7 | String doPayment(); 8 | } 9 | -------------------------------------------------------------------------------- /src/com/company/creational/abstractfactory/PaymentMethodFactory.java: -------------------------------------------------------------------------------- 1 | package com.company.creational.abstractfactory; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 18/7/19. 5 | */ 6 | public class PaymentMethodFactory implements AbstractFactory { 7 | @Override 8 | public PaymentMethod create(String type) { 9 | if("CREDIT".equals(type)){ 10 | return new Credit(); 11 | } else if("DEBIT".equals(type)){ 12 | return new Debit(); 13 | } 14 | return null; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/com/company/creational/abstractfactory/Visa.java: -------------------------------------------------------------------------------- 1 | package com.company.creational.abstractfactory; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 18/7/19. 5 | */ 6 | public class Visa implements Card { 7 | 8 | @Override 9 | public String getCardType() { 10 | return "VISA"; 11 | } 12 | 13 | @Override 14 | public String getCardNumber() { 15 | return "0000 0000 0000 VISA"; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/com/company/creational/builder/Card.java: -------------------------------------------------------------------------------- 1 | package com.company.creational.builder; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 20/7/19. 5 | */ 6 | public class Card { 7 | 8 | private final String cardType; 9 | private final String number; 10 | private final String name; 11 | private final int expires; 12 | private final boolean credit; 13 | 14 | private Card(CardBuilder builder){ 15 | this.cardType = builder.cardType; 16 | this.number = builder.number; 17 | this.name = builder.name; 18 | this.expires = builder.expires; 19 | this.credit = builder.credit; 20 | } 21 | 22 | public String getCardType() { 23 | return cardType; 24 | } 25 | 26 | public String getNumber() { 27 | return number; 28 | } 29 | 30 | public String getName() { 31 | return name; 32 | } 33 | 34 | public int getExpires() { 35 | return expires; 36 | } 37 | 38 | public boolean isCredit() { 39 | return credit; 40 | } 41 | 42 | @Override 43 | public String toString() { 44 | return "Card: " + cardType + " " + number + " " + expires + " " + name + " " + credit; 45 | } 46 | 47 | public static class CardBuilder{ 48 | private String cardType; 49 | private String number; 50 | private String name; 51 | private int expires; 52 | private boolean credit; 53 | 54 | public CardBuilder(String cardType, String number){ 55 | this.cardType = cardType; 56 | this.number = number; 57 | } 58 | 59 | public CardBuilder name(String name){ 60 | this.name = name; 61 | return this; 62 | } 63 | 64 | public CardBuilder expires(int expires){ 65 | this.expires = expires; 66 | return this; 67 | } 68 | 69 | public CardBuilder credit(boolean credit){ 70 | this.credit = credit; 71 | return this; 72 | } 73 | 74 | public Card build(){ 75 | return new Card(this); 76 | } 77 | 78 | } 79 | } 80 | -------------------------------------------------------------------------------- /src/com/company/creational/factorymethod/CardPayment.java: -------------------------------------------------------------------------------- 1 | package com.company.creational.factorymethod; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 15/7/19. 5 | */ 6 | public class CardPayment implements Payment { 7 | @Override 8 | public void doPayment() { 9 | System.out.println("Pagando con Tarjeta de Credito"); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/com/company/creational/factorymethod/GooglePayment.java: -------------------------------------------------------------------------------- 1 | package com.company.creational.factorymethod; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 15/7/19. 5 | */ 6 | public class GooglePayment implements Payment { 7 | @Override 8 | public void doPayment() { 9 | System.out.println("Pagando con Google Payment"); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/com/company/creational/factorymethod/Payment.java: -------------------------------------------------------------------------------- 1 | package com.company.creational.factorymethod; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 15/7/19. 5 | */ 6 | public interface Payment { 7 | void doPayment(); 8 | } 9 | -------------------------------------------------------------------------------- /src/com/company/creational/factorymethod/PaymentFactory.java: -------------------------------------------------------------------------------- 1 | package com.company.creational.factorymethod; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 15/7/19. 5 | */ 6 | public class PaymentFactory { 7 | 8 | public static Payment buildPayment(TypePayment typePayment){ 9 | switch (typePayment){ 10 | case GOOGLEPAY: 11 | return new GooglePayment(); 12 | case CARD: 13 | return new CardPayment(); 14 | default: 15 | return new CardPayment(); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/com/company/creational/factorymethod/TypePayment.java: -------------------------------------------------------------------------------- 1 | package com.company.creational.factorymethod; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 15/7/19. 5 | */ 6 | public enum TypePayment { 7 | CARD, 8 | GOOGLEPAY 9 | } 10 | -------------------------------------------------------------------------------- /src/com/company/creational/prototype/Amex.java: -------------------------------------------------------------------------------- 1 | package com.company.creational.prototype; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 20/7/19. 5 | */ 6 | public class Amex implements PrototypeCard { 7 | 8 | private String name; 9 | 10 | public String getName() { 11 | return name; 12 | } 13 | 14 | public void setName(String name) { 15 | this.name = name; 16 | } 17 | 18 | @Override 19 | public void getCard() { 20 | System.out.println("Esto es una tarjeta Amex"); 21 | } 22 | 23 | @Override 24 | public PrototypeCard clone() throws CloneNotSupportedException { 25 | System.out.println("Clonando tarjeta Amex..."); 26 | return (Amex) super.clone(); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/com/company/creational/prototype/PrototypeCard.java: -------------------------------------------------------------------------------- 1 | package com.company.creational.prototype; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 20/7/19. 5 | */ 6 | public interface PrototypeCard extends Cloneable { 7 | 8 | void getCard(); 9 | 10 | PrototypeCard clone() throws CloneNotSupportedException; 11 | } 12 | -------------------------------------------------------------------------------- /src/com/company/creational/prototype/PrototypeFactory.java: -------------------------------------------------------------------------------- 1 | package com.company.creational.prototype; 2 | 3 | import java.util.HashMap; 4 | import java.util.Map; 5 | 6 | import static com.company.creational.prototype.PrototypeFactory.CartType.AMEX; 7 | import static com.company.creational.prototype.PrototypeFactory.CartType.VISA; 8 | 9 | /** 10 | * Created by albertopalomarrobledo on 20/7/19. 11 | */ 12 | public class PrototypeFactory { 13 | 14 | public static class CartType{ 15 | public static final String VISA = "visa"; 16 | public static final String AMEX = "amex"; 17 | } 18 | 19 | private static Map prototypes = new HashMap<>(); 20 | 21 | public static PrototypeCard getInstance(final String tipo) throws CloneNotSupportedException{ 22 | return prototypes.get(tipo).clone(); 23 | } 24 | 25 | public static void loadCard(){ 26 | Visa visa = new Visa(); 27 | visa.setName("Esta tarjeta es Visa con numero 0000"); 28 | prototypes.put(VISA, visa); 29 | 30 | Amex amex = new Amex(); 31 | amex.setName("Esta tarjeta es Amex con numero 0000"); 32 | prototypes.put(AMEX, amex); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/com/company/creational/prototype/Visa.java: -------------------------------------------------------------------------------- 1 | package com.company.creational.prototype; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 20/7/19. 5 | */ 6 | public class Visa implements PrototypeCard { 7 | 8 | private String name; 9 | 10 | public String getName() { 11 | return name; 12 | } 13 | 14 | public void setName(String name) { 15 | this.name = name; 16 | } 17 | 18 | @Override 19 | public void getCard() { 20 | System.out.println("Esto es una tarjeta Visa"); 21 | } 22 | 23 | @Override 24 | public PrototypeCard clone() throws CloneNotSupportedException { 25 | System.out.println("Clonando tarjeta visa..."); 26 | return (Visa) super.clone(); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/com/company/creational/singlenton/Card.java: -------------------------------------------------------------------------------- 1 | package com.company.creational.singlenton; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 29/7/19. 5 | */ 6 | public class Card { 7 | 8 | private static Card INSTANCE; 9 | 10 | private String cardNumber; 11 | 12 | private Card(){ 13 | 14 | } 15 | 16 | public synchronized static Card getINSTANCE(){ 17 | if(INSTANCE == null){ 18 | INSTANCE = new Card(); 19 | } 20 | return INSTANCE; 21 | } 22 | 23 | public String getCardNumber() { 24 | return cardNumber; 25 | } 26 | 27 | public void setCardNumber(String cardNumber) { 28 | this.cardNumber = cardNumber; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/com/company/structural/adapter/Adapter.java: -------------------------------------------------------------------------------- 1 | package com.company.structural.adapter; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 2/8/19. 5 | */ 6 | public class Adapter implements Payment { 7 | 8 | Secure secureCreditCard; 9 | 10 | public Adapter(String type){ 11 | if(type.equals("black")){ 12 | secureCreditCard = new BlackCreditCard(); 13 | } else if(type.equals("gold")){ 14 | secureCreditCard = new GoldCreditCard(); 15 | } 16 | } 17 | 18 | @Override 19 | public void pay(String type) { 20 | if (type.equals("black")) { 21 | secureCreditCard.payWithSecureLevelA(); 22 | } else if (type.equals("gold")) { 23 | secureCreditCard.payWithSecureLevelZ(); 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/com/company/structural/adapter/BlackCreditCard.java: -------------------------------------------------------------------------------- 1 | package com.company.structural.adapter; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 2/8/19. 5 | */ 6 | public class BlackCreditCard implements Secure { 7 | 8 | @Override 9 | public void payWithSecureLevelA() { 10 | System.out.println("Tarjeta Black: Pagando con Seguridad ALTA nivel A"); 11 | } 12 | 13 | @Override 14 | public void payWithSecureLevelZ() { 15 | //no implementar 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/com/company/structural/adapter/CreditCard.java: -------------------------------------------------------------------------------- 1 | package com.company.structural.adapter; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 2/8/19. 5 | */ 6 | public class CreditCard implements Payment { 7 | 8 | Adapter adapter; 9 | 10 | @Override 11 | public void pay(String type) { 12 | if(type.equals("classic")){ 13 | System.out.println("Tarjeta Classic: Pagando Sin ningun tipo de Seguridad"); 14 | } else if(type.equals("gold")){ 15 | adapter = new Adapter("gold"); 16 | adapter.pay("gold"); 17 | } else if (type.equals("black")){ 18 | adapter = new Adapter("black"); 19 | adapter.pay("black"); 20 | } else { 21 | System.out.println("No se puede hacer el pago - No se reconoce esa tarjeta"); 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/com/company/structural/adapter/GoldCreditCard.java: -------------------------------------------------------------------------------- 1 | package com.company.structural.adapter; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 2/8/19. 5 | */ 6 | public class GoldCreditCard implements Secure{ 7 | @Override 8 | public void payWithSecureLevelA() { 9 | //no implementar 10 | } 11 | 12 | @Override 13 | public void payWithSecureLevelZ() { 14 | System.out.println("Tarjeta Gold: Pagando con Seguridad BAJA nivel Z"); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/com/company/structural/adapter/Payment.java: -------------------------------------------------------------------------------- 1 | package com.company.structural.adapter; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 2/8/19. 5 | */ 6 | public interface Payment { 7 | void pay(String type); 8 | } 9 | -------------------------------------------------------------------------------- /src/com/company/structural/adapter/Secure.java: -------------------------------------------------------------------------------- 1 | package com.company.structural.adapter; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 2/8/19. 5 | */ 6 | public interface Secure { 7 | void payWithSecureLevelA(); 8 | void payWithSecureLevelZ(); 9 | } 10 | -------------------------------------------------------------------------------- /src/com/company/structural/bridge/ClassicCreditCard.java: -------------------------------------------------------------------------------- 1 | package com.company.structural.bridge; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 2/8/19. 5 | */ 6 | public class ClassicCreditCard extends CreditCard { 7 | 8 | public ClassicCreditCard(ICreditCard tarjeta){ 9 | super(tarjeta); 10 | } 11 | 12 | @Override 13 | public void realizarPago() { 14 | tarjeta.realizarPago(); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/com/company/structural/bridge/CreditCard.java: -------------------------------------------------------------------------------- 1 | package com.company.structural.bridge; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 2/8/19. 5 | */ 6 | public abstract class CreditCard { 7 | 8 | protected ICreditCard tarjeta; 9 | 10 | protected CreditCard(ICreditCard tarjeta){ 11 | this.tarjeta = tarjeta; 12 | } 13 | 14 | public abstract void realizarPago(); 15 | } 16 | -------------------------------------------------------------------------------- /src/com/company/structural/bridge/ICreditCard.java: -------------------------------------------------------------------------------- 1 | package com.company.structural.bridge; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 2/8/19. 5 | */ 6 | public interface ICreditCard { 7 | 8 | void realizarPago(); 9 | } 10 | -------------------------------------------------------------------------------- /src/com/company/structural/bridge/SecureCreditCard.java: -------------------------------------------------------------------------------- 1 | package com.company.structural.bridge; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 2/8/19. 5 | */ 6 | public class SecureCreditCard implements ICreditCard{ 7 | @Override 8 | public void realizarPago() { 9 | System.out.println("Pago realizado CON SEGURIDAD"); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/com/company/structural/bridge/UnsecureCreditCard.java: -------------------------------------------------------------------------------- 1 | package com.company.structural.bridge; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 2/8/19. 5 | */ 6 | public class UnsecureCreditCard implements ICreditCard { 7 | 8 | @Override 9 | public void realizarPago() { 10 | System.out.println("Pago realizado SIN SEGURIDAD"); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/com/company/structural/composite/CuentaAhorro.java: -------------------------------------------------------------------------------- 1 | package com.company.structural.composite; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 3/8/19. 5 | */ 6 | public class CuentaAhorro implements CuentaComponent { 7 | 8 | private Double amount; 9 | private String name; 10 | 11 | public CuentaAhorro(Double amount, String name) { 12 | this.amount = amount; 13 | this.name = name; 14 | } 15 | 16 | @Override 17 | public void showAccountName() { 18 | System.out.println("Cuenta Ahorro: " + name); 19 | } 20 | 21 | @Override 22 | public Double getAmount() { 23 | return amount; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/com/company/structural/composite/CuentaComponent.java: -------------------------------------------------------------------------------- 1 | package com.company.structural.composite; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 3/8/19. 5 | */ 6 | public interface CuentaComponent { 7 | void showAccountName(); 8 | Double getAmount(); 9 | } 10 | -------------------------------------------------------------------------------- /src/com/company/structural/composite/CuentaComposite.java: -------------------------------------------------------------------------------- 1 | package com.company.structural.composite; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | /** 7 | * Created by albertopalomarrobledo on 3/8/19. 8 | */ 9 | public class CuentaComposite implements CuentaComponent { 10 | 11 | private List childCuentas; 12 | 13 | public CuentaComposite(){ 14 | this.childCuentas = new ArrayList<>(); 15 | } 16 | 17 | @Override 18 | public void showAccountName() { 19 | for(CuentaComponent cuenta : childCuentas){ 20 | cuenta.showAccountName(); 21 | } 22 | } 23 | 24 | @Override 25 | public Double getAmount() { 26 | Double totalAmount = 0.0; 27 | for (CuentaComponent cuenta : childCuentas){ 28 | totalAmount += cuenta.getAmount(); 29 | } 30 | System.out.print("La cantidad de dinero es: " + totalAmount); 31 | return totalAmount; 32 | } 33 | 34 | public void addCuenta(CuentaComponent cuenta){ 35 | childCuentas.add(cuenta); 36 | } 37 | 38 | public void removeCuenta(CuentaComponent cuenta){ 39 | childCuentas.remove(cuenta); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/com/company/structural/composite/CuentaCorriente.java: -------------------------------------------------------------------------------- 1 | package com.company.structural.composite; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 3/8/19. 5 | */ 6 | public class CuentaCorriente implements CuentaComponent { 7 | 8 | private Double amount; 9 | private String name; 10 | 11 | public CuentaCorriente(Double amount, String name) { 12 | this.amount = amount; 13 | this.name = name; 14 | } 15 | 16 | @Override 17 | public void showAccountName() { 18 | System.out.println("Cuenta Corriente: " + name); 19 | } 20 | 21 | @Override 22 | public Double getAmount() { 23 | return amount; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/com/company/structural/decorator/Black.java: -------------------------------------------------------------------------------- 1 | package com.company.structural.decorator; 2 | 3 | import com.company.structural.bridge.CreditCard; 4 | 5 | /** 6 | * Created by albertopalomarrobledo on 3/8/19. 7 | */ 8 | public class Black implements Credit { 9 | @Override 10 | public void showCredit() { 11 | System.out.println("El crédito es de 1.000.000"); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/com/company/structural/decorator/Credit.java: -------------------------------------------------------------------------------- 1 | package com.company.structural.decorator; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 3/8/19. 5 | */ 6 | public interface Credit { 7 | void showCredit(); 8 | } 9 | -------------------------------------------------------------------------------- /src/com/company/structural/decorator/CreditDecorator.java: -------------------------------------------------------------------------------- 1 | package com.company.structural.decorator; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 3/8/19. 5 | */ 6 | public class CreditDecorator implements Credit { 7 | 8 | protected Credit decoratedCredit; 9 | public CreditDecorator(Credit decoratedCredit){ 10 | this.decoratedCredit = decoratedCredit; 11 | } 12 | 13 | @Override 14 | public void showCredit() { 15 | decoratedCredit.showCredit(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/com/company/structural/decorator/Gold.java: -------------------------------------------------------------------------------- 1 | package com.company.structural.decorator; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 3/8/19. 5 | */ 6 | public class Gold implements Credit { 7 | @Override 8 | public void showCredit() { 9 | System.out.println("El crédito es de 50.000"); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/com/company/structural/decorator/InternationalPaymentDecorator.java: -------------------------------------------------------------------------------- 1 | package com.company.structural.decorator; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 3/8/19. 5 | */ 6 | public class InternationalPaymentDecorator extends CreditDecorator { 7 | 8 | public InternationalPaymentDecorator(Credit decoratedCredit) { 9 | super(decoratedCredit); 10 | } 11 | 12 | @Override 13 | public void showCredit() { 14 | decoratedCredit.showCredit(); 15 | configInternationalPayment(); 16 | } 17 | 18 | private void configInternationalPayment(){ 19 | System.out.println("La tarjeta ha sido configurada para hacer pagos internacionales"); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/com/company/structural/decorator/SecureDecorator.java: -------------------------------------------------------------------------------- 1 | package com.company.structural.decorator; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 3/8/19. 5 | */ 6 | public class SecureDecorator extends CreditDecorator { 7 | 8 | 9 | public SecureDecorator(Credit decoratedCredit) { 10 | super(decoratedCredit); 11 | } 12 | 13 | @Override 14 | public void showCredit() { 15 | decoratedCredit.showCredit(); 16 | configSecure(); 17 | } 18 | 19 | private void configSecure(){ 20 | System.out.println("La tarjeta ha sido configurada con Seguridad Máxima"); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/com/company/structural/facade/Black.java: -------------------------------------------------------------------------------- 1 | package com.company.structural.facade; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 3/8/19. 5 | */ 6 | public class Black implements Credit{ 7 | @Override 8 | public void showCredit() { 9 | System.out.println("La tarjeta Black tiene un Crédito de 1.000.000"); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/com/company/structural/facade/Credit.java: -------------------------------------------------------------------------------- 1 | package com.company.structural.facade; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 3/8/19. 5 | */ 6 | public interface Credit { 7 | void showCredit(); 8 | } 9 | -------------------------------------------------------------------------------- /src/com/company/structural/facade/CreditMarket.java: -------------------------------------------------------------------------------- 1 | package com.company.structural.facade; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 3/8/19. 5 | */ 6 | public class CreditMarket { 7 | 8 | private Credit gold; 9 | private Credit silver; 10 | private Credit black; 11 | 12 | public CreditMarket(){ 13 | gold = new Gold(); 14 | silver = new Silver(); 15 | black = new Black(); 16 | } 17 | 18 | public void showCreditGold(){ 19 | gold.showCredit(); 20 | } 21 | 22 | public void showCreditSilver(){ 23 | silver.showCredit(); 24 | } 25 | 26 | public void showCreditBlack(){ 27 | black.showCredit(); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/com/company/structural/facade/Gold.java: -------------------------------------------------------------------------------- 1 | package com.company.structural.facade; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 3/8/19. 5 | */ 6 | public class Gold implements Credit { 7 | 8 | @Override 9 | public void showCredit() { 10 | System.out.println("La tarjeta Gold tiene un Crédito de 5.000"); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/com/company/structural/facade/Silver.java: -------------------------------------------------------------------------------- 1 | package com.company.structural.facade; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 3/8/19. 5 | */ 6 | public class Silver implements Credit { 7 | 8 | @Override 9 | public void showCredit() { 10 | System.out.println("La tarjeta Silver tiene un Crédito de 200.000"); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/com/company/structural/flyweight/Detective.java: -------------------------------------------------------------------------------- 1 | package com.company.structural.flyweight; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 4/8/19. 5 | */ 6 | public class Detective implements Enemy { 7 | 8 | private String weapon; 9 | private final String LIFE; 10 | 11 | public Detective(){ 12 | LIFE = "1000"; 13 | } 14 | 15 | @Override 16 | public void setWeapon(String weapon) { 17 | this.weapon = weapon; 18 | System.out.println("El arma del detective es: " + weapon); 19 | } 20 | 21 | @Override 22 | public void lifePoints() { 23 | System.out.println("La vida de un detective es: " + LIFE); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/com/company/structural/flyweight/Enemy.java: -------------------------------------------------------------------------------- 1 | package com.company.structural.flyweight; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 4/8/19. 5 | */ 6 | public interface Enemy { 7 | void setWeapon(String weapon); 8 | void lifePoints(); 9 | } 10 | -------------------------------------------------------------------------------- /src/com/company/structural/flyweight/EnemyFactory.java: -------------------------------------------------------------------------------- 1 | package com.company.structural.flyweight; 2 | 3 | import java.util.HashMap; 4 | 5 | /** 6 | * Created by albertopalomarrobledo on 4/8/19. 7 | */ 8 | public class EnemyFactory { 9 | 10 | private static HashMap enemigos = new HashMap<>(); 11 | 12 | public static Enemy getEnemy(String type){ 13 | Enemy enemy = null; 14 | if(enemigos.containsKey(type)){ 15 | enemy = enemigos.get(type); 16 | }else { 17 | switch (type){ 18 | case "Private": 19 | System.out.println("Soldado ha sido creado"); 20 | enemy = new Private(); 21 | break; 22 | case "Detective": 23 | System.out.println("Detective ha sido creado"); 24 | enemy = new Detective(); 25 | break; 26 | default: 27 | System.out.println("No se ha creado enemigo"); 28 | } 29 | enemigos.put(type, enemy); 30 | } 31 | return enemy; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/com/company/structural/flyweight/Private.java: -------------------------------------------------------------------------------- 1 | package com.company.structural.flyweight; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 4/8/19. 5 | */ 6 | public class Private implements Enemy { 7 | 8 | private String weapon; 9 | private final String LIFE; 10 | 11 | public Private(){ 12 | LIFE = "200"; 13 | } 14 | 15 | @Override 16 | public void setWeapon(String weapon) { 17 | this.weapon = weapon; 18 | System.out.println("El arma del soldado es: " + weapon); 19 | } 20 | 21 | @Override 22 | public void lifePoints() { 23 | System.out.println("La vida de un soldado son: " + LIFE); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/com/company/structural/proxy/AccessToInternet.java: -------------------------------------------------------------------------------- 1 | package com.company.structural.proxy; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 4/8/19. 5 | */ 6 | public class AccessToInternet implements Internet { 7 | 8 | @Override 9 | public void connectTo(String url) throws Exception { 10 | System.out.println("Conectando a: " + url); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/com/company/structural/proxy/Internet.java: -------------------------------------------------------------------------------- 1 | package com.company.structural.proxy; 2 | 3 | /** 4 | * Created by albertopalomarrobledo on 4/8/19. 5 | */ 6 | public interface Internet { 7 | void connectTo(String url) throws Exception; 8 | } 9 | -------------------------------------------------------------------------------- /src/com/company/structural/proxy/ProxyInternet.java: -------------------------------------------------------------------------------- 1 | package com.company.structural.proxy; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | /** 7 | * Created by albertopalomarrobledo on 4/8/19. 8 | */ 9 | public class ProxyInternet implements Internet { 10 | 11 | private Internet internet = new AccessToInternet(); 12 | private static List bannedUrl; 13 | 14 | static { 15 | bannedUrl = new ArrayList<>(); 16 | bannedUrl.add("twitter.com"); 17 | bannedUrl.add("facebook.com"); 18 | bannedUrl.add("google.com"); 19 | } 20 | 21 | @Override 22 | public void connectTo(String url) throws Exception { 23 | if(bannedUrl.contains(url)){ 24 | throw new Exception("URL bloqueada - Acceso Denegado - Consulta con tu administrador"); 25 | } 26 | internet.connectTo(url); 27 | } 28 | } 29 | --------------------------------------------------------------------------------