简单工厂模式和适配器模式

面向接口编程之制定标准和简单工厂模式

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

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手机在发短信 
对不起,类型为空!

14、面向接口编程之适配器模式
使用一个现成的类,但是它的接口不完全符合你的需求,我只想要它其中的一个方法,不想覆写其他的方法。

举一个 很简单的例子:比如,窗体有变大,变小,关闭的行为,但是我现在只需要关闭行为;

package reviewDemo;
//适配器模式:只想用其中的某一个方法,用适配器作为中间的过渡

interface Windows{
    void max();
    void min();
    void close();
}
//适配器模式,实现接口所有的方法,但是不写方法体!

class AdapterWindows implements Windows{

    @Override
    public void max() {
    }

    @Override
    public void min() {
    }

    @Override
    public void close() {
    }

}
class MyWindows extends AdapterWindows{
    //覆写父类的方法
    public void close(){
        System.out.println("这个实现的是关闭功能!");
    }
}

public class Demo17 {
    public static void main(String[] args) {
        new MyWindows().close();
    }
}

你可能感兴趣的:(设计模式,简单工厂模式,适配器模式)