专栏首页醉程序设计模式学习 - 工厂模式

设计模式学习 - 工厂模式

学习、梳理设计模式。

工厂模式

工厂方法模式

根据不同的对象,提供不同的工厂,然后由客户端来选择对应的工厂。这也是与简单工厂模式的不同的地方。

人 接口

public interface People {
    void speek();
}

男孩

public class Boy implements People {
    @Override
    public void speek() {
        System.out.println("boy");
    }
}

女孩

public class Girl implements People {
    @Override
    public void speek() {
        System.out.println("girl");
    }
}

人 工厂

public interface PeopleFactory {
    People getPeople();
}

男孩 工厂

public class BoyFactory implements PeopleFactory {
    @Override
    public People getPeople() {
        return new Boy();
    }
}

女孩 工厂

public class GirlFactory implements PeopleFactory {
    @Override
    public People getPeople() {
        return new Girl();
    }
}

客户端

public class Client {
    public static void main(String[] args) {
        PeopleFactory pf = new BoyFactory();
        pf.getPeople().speek();

        PeopleFactory pf1 = new GirlFactory();
        pf1.getPeople().speek();
    }
}

输出

boy girl

抽象工厂模式

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 设计模式学习 - 适配器模式

    许杨淼淼
  • 设计模式学习 - 策略模式

    一个背景,CRM系统内有多种帐号体系:手机号注册的客户、微信授权的客户、微博授权的客户。 一个场景,需要把这些不同帐号体系的ID转换为CRM系统内部的统一Us...

    许杨淼淼
  • 设计模式学习 - 模版方法模式

    模版方法模式,以继承的方式来实现,提升代码的复用性,适合具有相同或相似的步骤的逻辑处理。

    许杨淼淼
  • Spring Boot 2.X(十八):集成 Spring Security-登录认证和权限控制

    在企业项目开发中,对系统的安全和权限控制往往是必需的,常见的安全框架有 Spring Security、Apache Shiro 等。本文主要简单介绍一下 Sp...

    朝雾轻寒
  • ASP.NET Web API中的依赖注入什么是依赖注入ASP.NET Web API依赖解析器使用Unity解析依赖配置依赖解析

    什么是依赖注入     依赖,就是一个对象需要的另一个对象,比如说,这是我们通常定义的一个用来处理数据访问的存储,让我们用一个例子来解释,首先,定义一个领域模型...

    小白哥哥
  • 依赖注入容器-- Autofac

    Autofac---Autofac是一款IOC框架,比较于其他的IOC框架,如Spring.NET,Unity,Castle等等所包含的,它很轻量级性能上非常高...

    小世界的野孩子
  • Java面向对象之抽象类,接口

    抽象类: 含有抽象方法的类被声明为抽象类 抽象方法由子类去实现 含有抽象方法的类必须被声明为抽象类 抽象类被子类继承,子类(如果不是抽象类)必须重写抽象类中...

    二十三年蝉
  • JAVA初中级程序员笔试试题

    (多选题) 1.以下哪些不是Java保留字__________ A. private     B. Final    C. class    D. Thro...

    用户2192970
  • 设计模式-里氏替换

    先来看个最正宗的定义 如果对每一个类型为S的对象o1,都有类型为T的对 象o2,使得以T定义的所有程序P在所有的对象o1都代换成o2时,程序P的行为没有发生变 ...

    yiduwangkai
  • 23种设计模式详解(三)

    南风

扫码关注云+社区

领取腾讯云代金券