zoukankan      html  css  js  c++  java
  • java面向接口编程之制定标准和简单工厂模式

    制定一个标准,让别人去实现或者说满足它!

    Eg:

    interface USB{//定义USB标准

        void useUSB();//USB有使用USB的行为

    }

    简单工厂模式

    构建一个工厂出来,在里面进行生产,用的时候直接拿

     

    我的总结:

    好处:屏蔽不同子类实现的差异,提高代码的可拓展性和可维护性;

     

     

    package reviewDemo;

    //简单工厂模式

    interface Phone{//制定标准,都要实现send()方法

        public void send();

    }

    class Iphone implements Phone{

        @Override

        public void send() {

            System.out.println("Iphone手机在发短信");

        }

    }

    class AndroidPhone implements Phone{

        @Override

        public void send() {

            System.out.println("AndroidPhone手机在发短信");

        }

    }

    class MyPhone implements Phone{

        @Override

        public void send() {

            System.out.println("MyPhone手机在发短信");

        }

    }

    class Factory{

        public static void show(String type){//传入参数,根据不同的类型个性化定制

            if(type.equals("")){//为空的情况,不用往下执行

                System.out.println("对不起,类型为空!,请重新输入!");

                return;

            }

            Phone p = null;

            if("Iphone".equals(type)){//判断类型

                p = new Iphone();

            }else if("AndroidPhone".equals(type)){

                p = new AndroidPhone();

            }else{

                p = new MyPhone();

            }

            p.send();

        }

    }

    public class FactoryDemo17 {

        public static void main(String[] args) {

           

            new Factory().show("Iphone");//调用方法

            new Factory().show("AndroidPhone");

            new Factory().show("MyPhone");

            new Factory().show("YourPhone");

            new Factory().show("");

        }

    }

     

    输出:

    Iphone手机在发短信

    AndroidPhone手机在发短信

    MyPhone手机在发短信

    MyPhone手机在发短信

    对不起,类型为空!

  • 相关阅读:
    HHHOJ #153. 「NOI模拟 #2」Kotomi
    HHHOJ #151. 「NOI模拟 #2」Nagisa
    Luogu P5298 [PKUWC2018]Minimax
    Luogu P5368 [PKUSC2018]真实排名
    Luogu P5408 【模板】第一类斯特林数·行
    Codechef December Challenge 2019 Division 1
    AtCoder Grand Contest 040
    CSP2019游记(翻车记)
    Codeforces Round #594 (Div. 1)
    AtCoder Grand Contest 039
  • 原文地址:https://www.cnblogs.com/fanweisheng/p/11131581.html
Copyright © 2011-2022 走看看