zoukankan      html  css  js  c++  java
  • 简单工厂模式

        简单工厂模式是类的创建模式,又叫做静态工厂方法,简单工厂模式是一个工厂对象决定创建出哪一个产品类的实例。
    下面是个人的理解,在这个简单的工厂模式中,工厂类显然是核心所在,作为工厂类,它的方法是一个静态的方法,所以这个类也就是静态的类,而这个类里面的方法是一个返回类型为类类型,参数类型为字符串类型的方法,这样的话,当我们在测试类测试的时候,我们可以实现传入一个类名就可以返回一个类的功能,而在接口方面,我们定义了一个抽象类,同一种类型的不同具体实现,最后返回的时候都是归为这个接口的,下面是代码实现;
    登录总接口类
     
    package simpleFactory;
    
    public interface Login {
          public boolean verify(String name, String password);
    }
    

      域认证登录

    package simpleFactory;
    
    public class Domain implements Login{
    
          public Domain() {
                // TODO Auto-generated constructor stub
          }
          public boolean verify(String name, String password){
                System.out.println("这是域认证");
                return true;
          }
    
    }
    

      密码认证登录

    package simpleFactory;
    
    public class Password implements Login{
    
          public Password() {
                // TODO Auto-generated constructor stub
          }
          public boolean verify(String name, String password){
                System.out.println("密码认证");
                return true;
          }
    
    }
    核心工厂类
     
    package simpleFactory;
    
    public class loginManager {
    
          public loginManager() {
                // TODO Auto-generated constructor stub
          }
          public static Login factory(String type){
                if(type.equals("Domain"))
                      return new Domain();
                else if(type.equals("Password"))
                      return new Password();
                else
                      throw new RuntimeException("没有找到登录类型");
          }
    }
    

      测试类

    package simpleFactory;
    
    public class Test {
    
          public Test() {
                // TODO Auto-generated constructor stub
          }
          public static void main(String[] args){
                String loginType = "Password";
                String name = "name";
                String password = "password";
                Login login = loginManager.factory(loginType);
                boolean issuccess = login.verify(name,password);
                if(issuccess == true){
                      System.out.println("passwordTYpe");
                }
                else
                      System.out.println("fail");
          }
    
    }
        下面是个人的理解;
    作为简单工厂模式,我们可以设想为一个玩具工厂,而接口就是你这个产品的设计图纸,这种可以说设计玩具,像是洋娃娃和小汽车,而作为核心的工厂类就相当于玩具本身,老板说,我要生产一个洋娃娃,然后把这个命令传下去,工厂接受到这个命令之后,就开始照着设计图纸做玩具了,最后返回了一个实体的洋娃娃。这就是我理解的简单工厂模式。
     
  • 相关阅读:
    在 Delphi 下使用 DirectSound (8): IDirectSound8.DuplicateSoundBuffer() 与 IDirectSoundBuffer.GetStatus()
    在 Delphi 下使用 DirectSound (10): 测试合唱效果器 IDirectSoundFXChorus8
    在 Delphi 下使用 DirectSound (7): 播放资源文件中的 Wave 数据
    在 Delphi 下使用 DirectSound (13): 测试回声效果器 IDirectSoundFXEcho8
    The process could not execute 'sp_replcmds' on ‘Server Name’
    C盘空间用完竟然造成applicationHost.config文件内容为空
    推荐阅读20101018
    SQL Server 2008 R2作业中无法新建与修改步骤的问题
    ASP.NET中获取URL重写前的原始地址
    在.NET 4中用IIS部署WCF就这么简单
  • 原文地址:https://www.cnblogs.com/zxx123/p/8593087.html
Copyright © 2011-2022 走看看