(1-9-2)Java 工厂模式

发布于:2025-08-09 ⋅ 阅读:(17) ⋅ 点赞:(0)

目录

1.设计模式与分类

2. 工厂模式

2.1 工厂模式概述

2.2 简单工厂

2.3 学生推荐就业Demo

00.项目目录

01. 创建抽象接口Job

02. 创建实体类

03. 创建推荐工作工厂类

04. 创建学生推荐就业客户类

3. i18n国际化语言标题自适应

00. 实现效果

01. 创建抽象接口

02. 创建实体类

03.创建静态工厂类

04. 创建客户需求测试


1.设计模式与分类

设计模式可以分为三大类:


2. 工厂模式

2.1 工厂模式概述

2.2 简单工厂

2.3 学生推荐就业Demo

00.项目目录

01. 创建抽象接口Job
package com.phdvb.factroy.jobTypes;

public interface Job {
    public String description();
}
02. 创建实体类

(1) Bank

package com.phdvb.factroy.jobTypes;

public class Bank implements Job{
    @Override
    public String description() {
        return "银行工作一般稳定,加班一般,薪资一般,技术提升一般";
    }
}

(2) Company

package com.phdvb.factroy.jobTypes;

public class Company implements Job {
    @Override
    public String description() {
        return "私企工作不稳定,加班较多,薪资较高,技术提升较快";
    }
}

(3) SystemJob

package com.phdvb.factroy.jobTypes;

public class SystemJob implements Job{

    @Override
    public String description() {
        return "体制工作稳定,加班一般,薪资较低。技术提升慢";
    }
}

(4) Other

package com.phdvb.factroy.jobTypes;

public class Other implements Job{
    @Override
    public String description() {
        return "选择自己热爱的事业!";
    }
}
03. 创建推荐工作工厂类
package com.phdvb.factroy.jobTypes;

public class JobChooser {
    public Job suggest(String purpose){
        Job job = null;
        if(purpose.equals("想要奋斗!")){
            return new Company();
        }else if(purpose.equals("偏爱金融!")){
            return new Bank();
        }else if(purpose.equals("热爱奉献!")){
            return new SystemJob();
        }else
            return new Other();
    }
}
04. 创建学生推荐就业客户类
package com.phdvb.factroy.jobTypes;

public class Student {
    public static void main(String[] args) {
        JobChooser jobChooser = new JobChooser();
        Job youJob = jobChooser.suggest("热爱奉献!");
        System.out.println(youJob.description());
    }
}


3. i18n国际化语言标题自适应

00. 实现效果

01. 创建抽象接口
package com.phdvb.factroy.i18n;

public interface Language {
    public String getLanguage();
}
02. 创建实体类
package com.phdvb.factroy.i18n;

public class China implements Language{
    @Override
    public String getLanguage() {
        return "你好,我是剖好的VB!";
    }
}
package com.phdvb.factroy.i18n;

public class France implements Language{
    @Override
    public String getLanguage() {
        return "Bonjour, je suis VB eviseed!";
    }
}
package com.phdvb.factroy.i18n;

public class Japan implements Language{
    @Override
    public String getLanguage() {
        return "こんにちは、私はプロのVBです!";
    }
}
package com.phdvb.factroy.i18n;

public class Russia implements Language{
    @Override
    public String getLanguage() {
        return "Привет, я свежерезанный!";
    }
}
package com.phdvb.factroy.i18n;

public class US implements Language{
    @Override
    public String getLanguage() {
        return "Hello, I'm the dissected VB!";
    }
}
03.创建静态工厂类
package com.phdvb.factroy.i18n;

public class MatchLang {
    public static Language getLanguage(String country) {
        if(country.equals("China")){
            return new China();
        }else if(country.equals("France")){
            return new France();
        }else if(country.equals("Japan")){
            return new France();
        }else if(country.equals("Russia")){
            return new Russia();
        }else if(country.equals("US")){
            return new US();
        }else
            return null;
    }
}
04. 创建客户需求测试
package com.phdvb.factroy.i18n;

public class LangChoose {
    public static void main(String[] args) {
        Language language = MatchLang.getLanguage("France");
        System.out.println(language.getLanguage());
    }
}


网站公告

今日签到

点亮在社区的每一天
去签到