├── .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 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/project-template.xml:
--------------------------------------------------------------------------------
1 |
2 | IJ_BASE_PACKAGE
3 |
--------------------------------------------------------------------------------
/.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 |
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 |
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 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 |
204 |
205 |
206 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
216 |
217 |
218 |
219 |
220 |
221 |
222 |
223 |
224 |
225 |
226 |
227 |
228 |
229 |
230 |
231 |
232 |
233 |
234 |
235 |
236 |
237 |
238 |
239 |
240 |
241 |
242 |
243 |
244 |
245 |
246 |
247 |
248 |
249 |
250 |
251 |
252 |
253 |
254 |
255 |
256 |
257 |
258 |
259 |
260 |
261 |
262 |
263 |
264 |
265 |
266 |
267 |
268 |
269 |
270 |
271 |
272 |
273 |
274 |
275 |
276 |
277 |
278 |
279 |
280 |
281 |
282 |
283 |
284 |
285 |
286 |
287 |
288 |
289 |
290 |
291 |
292 |
293 |
294 |
295 |
296 |
297 |
298 |
299 |
300 |
301 |
302 |
303 |
304 |
305 |
306 |
307 |
308 |
309 |
310 |
311 |
312 |
313 |
314 |
315 |
316 |
317 |
318 |
319 |
320 |
321 |
322 |
323 |
324 |
325 |
326 |
327 |
328 |
329 |
330 |
331 |
332 |
333 |
334 |
335 |
336 |
337 |
338 |
339 |
340 |
341 |
342 |
343 |
344 |
345 |
346 |
347 |
348 |
349 |
350 |
351 |
352 |
353 |
354 |
355 |
356 |
357 |
358 |
359 |
360 |
361 |
362 |
363 |
364 |
365 |
366 |
367 |
368 |
369 |
370 |
371 |
372 |
373 |
374 |
375 |
376 |
377 |
378 |
379 |
380 |
381 |
382 |
383 |
384 |
385 |
386 |
387 |
388 |
389 |
390 |
391 |
392 |
393 |
394 |
395 |
396 |
397 |
398 |
399 |
400 |
401 |
402 |
403 |
404 |
405 |
406 |
407 |
408 |
409 |
410 |
411 |
412 |
413 |
414 |
415 |
416 |
417 |
418 |
419 |
420 |
421 |
422 |
423 |
424 |
425 |
426 |
427 |
428 |
429 |
430 |
431 |
432 |
433 |
434 |
435 |
436 |
437 |
438 |
439 |
440 |
441 |
442 |
443 |
444 |
445 |
446 |
447 |
448 |
449 |
450 |
451 |
452 |
453 |
454 |
455 |
456 |
457 |
458 |
459 |
460 |
461 |
462 |
463 |
464 |
465 |
466 |
467 |
468 |
469 |
470 |
471 |
472 |
473 |
474 |
475 |
476 |
477 |
478 |
479 |
480 |
481 |
482 |
483 |
484 |
485 |
486 |
487 |
488 |
489 |
490 |
491 |
492 |
493 |
494 |
495 |
496 |
497 |
498 |
499 |
500 |
501 |
502 |
503 |
504 |
505 |
506 |
507 |
508 |
509 |
510 |
511 |
512 |
513 |
514 |
515 |
516 |
517 | 1563201350649
518 |
519 |
520 | 1563201350649
521 |
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 |
582 |
583 |
584 |
585 |
586 |
587 |
588 |
589 |
590 |
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 |
--------------------------------------------------------------------------------