首页 > 其他 > 详细

今天学习了几个设计模式

时间:2020-05-14 23:20:13      阅读:58      评论:0      收藏:0      [点我收藏+]

1.简单工厂设计模式:

假如我们设置一个工厂,里面可以生产手机电脑等,一般我们都是这么定义的

public class Test18 {
    public static void main(String []args) {
        Product s = new Phone();  
        s.work();
    }
}


//产品接口
interface Product{
    //可以工作,定义一个工作方法
    public void work();
}
//制作手机的类
class Phone implements Product{
    public void work() {
        System.out.println("手机正在工作");
    }
}
class Computer implements Product{
    public void work() {
        System.out.println("这是一台电脑");
    }
}

这时候我们会发现,假如我们制作手机的类需求不需要了删掉了,这时候我们创建对象的代码就会报错,因为Product s = new Phone();和类依赖性太高了,这时候我们就要降低依赖性,所以就有了这个设计模式:简单工厂设计模式;

我们再写一个工厂类:

//工厂类
class ProductFactory{
    //工厂生产产品 所以是Product  获取产品,传入相对应的参数
    public static Product getProduct(String name) {   //静态方法
        //判断语句
        if("Phone".equals(name)) {    //判断 如果你想要Phone,如果Phone等于传入的参数
            return new Phone();  //那就返回Phone (生产Phone)
        }else if("Computer".equals(name)) {   //如果Computer等于传入的参数
            return new Computer();//那就给他返回Computer
        }else {
            return null;  //如果这个工厂只能生产两种产品,你还想要其他的,满足不了需求,只能返回null
            //如果需求增加了,那就再写一个增加的需求类,再添加判断即可
        }
    }
}

整体代码:

/**
 * 
    设计模式:简单工厂模式
 */
public class Test18 {
    public static void main(String []args) {
        //使用者与被使用者之间,耦合,产生依赖,当被使用者(Phone)改变时会影响
        //Product s = new Phone();
        Product phone = ProductFactory.getProduct("Phone");  //静态方法直接调用类名加方法即可调用
        
        phone.work();
    }
}

//工厂类
class ProductFactory{
    //工厂生产产品 所以是Product  获取产品,传入相对应的参数
    public static Product getProduct(String name) {   //静态方法
        //判断语句
        if("Phone".equals(name)) {    //判断 如果你想要Phone,如果Phone等于传入的参数
            return new Phone();  //那就返回Phone (生产Phone)
        }else if("Computer".equals(name)) {   //如果Computer等于传入的参数
            return new Computer();//那就给他返回Computer
        }else {
            return null;  //如果这个工厂只能生产两种产品,你还想要其他的,满足不了需求,只能返回null
            //如果需求增加了,那就再写一个增加的需求类,再添加判断即可
        }
    }
}


//产品接口
interface Product{
    //可以工作,定义一个工作方法
    public void work();
}
//制作手机的类
class Phone implements Product{
    public void work() {
        System.out.println("手机正在工作");
    }
}

class Computer implements Product{
    public void work() {
        System.out.println("这是一台电脑");
    }
}

 

今天学习了几个设计模式

原文:https://www.cnblogs.com/LZz089/p/12891683.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!