Android Programjaim

Android fejlesztes, java, kotlin, web.. miegymas:)

Java design patterns kezdoknek - kicsit tobb

2015. augusztus 20. 10:52 - lacas82

Elgondolkoztam azon, hogy igazabol olyan hu de sok design pattern-t nem hasznalok meg ense. Aki mar vagy 5 eve kodol androidban. Olyan 6-7-et maximum. (tobb hirtelen nem is jut eszembe)

Nezzuk mik ezek:

    public static class BeanPattern {
        String name;
        int yearsold;

        public BeanPattern(String name, int yearsold) {
            this.name = name;
            this.yearsold = yearsold;
        }
        
        public String getName() {
            return name;
        }
        
        public void setName(String name) {
            this.name = name;
        }
        
        public int getYearsOld() {
            return yearsold;
        }
        
        public void setYearsOld(int yearsold) {
            this.yearsold = yearsold;
        }
        
        @Override
        public String toString() {
            return name + " : " + yearsold;
        }
    }
    
    public static class InstancePattern {

        private static InstancePattern instance = new InstancePattern();

        private InstancePattern() {}
        
        public static InstancePattern getInstance() {
            return instance;
        }
        
        @Override
        public String toString() {
            return "InstancePattern";
        }
    }
    
    public static class ObserverPattern {
        
        public static interface ObserverPatternListener {
            public void doSomething(int value);
        }  
        
        private ObserverPatternListener mListener;

        public ObserverPatternListener getListener() {
            return mListener;
        }

        public void setListener(ObserverPatternListener mListener) {
            this.mListener = mListener;
        }
        
    }
    
    public abstract static class FactoryPattern {
        
        public enum CLASSES { SECOND, THIRD }
        
        interface IFirst {
            public void asd1();
            public void asd2(String value);
        }
        
        private FactoryPattern() {}
        
        public static abstract class First implements IFirst {

            protected abstract void Method1();
            
            @Override
            public void asd1() {
                System.out.println("asd1");
            }

            @Override
            public void asd2(String value) {
                System.out.println("asd2" + value);
            }

            @Override
            public String toString() {
                return getClass().getSimpleName();
            }
        }
        
        public static class Second extends First {
            @Override
            public String toString() {
                return getClass().getSimpleName();
            }

            @Override
            protected void Method1() {
            }
        }
        
        public static class Third extends Second {
            @Override
            public String toString() {
                return getClass().getSimpleName();
            }
        }
        
        public static IFirst create(CLASSES classes) {
            switch (classes) {
                case SECOND:
                    return new Second();
                case THIRD:
                    return new Third();
            default:
                break;
            }
            
            return null;
        }
    }

Builder, Facades.

Es vegul a temaban kezdoknek egy kisebb video (szerintem nagyon jol elmagyarazza a dolgokat):