`
dr.han
  • 浏览: 46319 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

一:工厂模式

阅读更多
工厂模式就相当于创建实例对象的new,如果创建sample实例时所做的初始化工作不是象赋值这样简单的事,可能是很长一段代码,如果也写入构造函数中,那你的代码很难看了(就需要Refactor重整)。
面向对象的封装(Encapsulation)和分派(Delegation)告诉我们,尽量将长的代码分派“切割”成每段,将每段再“封装”起来(减少段和段之间偶合联系性),我们需要将创建实例的工作与使用实例的工作分开, 也就是说,让创建实例所需要的大量初始化工作从Sample的构造函数中分离出去。
使用工厂方法 要注意几个角色,首先你要定义产品接口,如上面的Sample,产品接口下有Sample接口的实现类,如SampleA,其次要有一个factory类,用来生成产品Sample

工厂模式中有: 工厂方法(Factory Method) 抽象工厂(Abstract Factory)

抽象工厂
public abstract class ForumFactory {

  private static Object initLock = new Object();
  private static String className = "com.jivesoftware.forum.database.DbForumFactory";
  private static ForumFactory factory = null; 

  public static ForumFactory getInstance(Authorization authorization) {
    //If no valid authorization passed in, return null.
    if (authorization == null) {
      return null;
    }
    //以下使用了Singleton 单态模式
    if (factory == null) {
      synchronized(initLock) {
        if (factory == null) {
            ...... 

          try {
              //动态转载类
              Class c = Class.forName(className);
              factory = (ForumFactory)c.newInstance();
          }
          catch (Exception e) {
              return null;
          }
        }
      }
    }

    //Now, 返回 proxy.用来限制授权对forum的访问
    return new ForumFactoryProxy(authorization, factory,
                    factory.getPermissions(authorization));
  }

  //真正创建forum的方法由继承forumfactory的子类去完成.
  public abstract Forum createForum(String name, String description)
  throws UnauthorizedException, ForumAlreadyExistsException;

  ....

}


分享到:
评论

相关推荐

    工厂模式:简单工厂模式、工厂方法模式、抽象工厂模式

    工厂模式是一种常用的软件设计模式,它是创建型设计模式的一种,主要解决对象的创建问题,将对象的创建过程封装起来,使得创建过程独立于使用过程。这样可以提高代码的可复用性和灵活性,同时降低了系统的耦合度。...

    实验四:工厂模式.rar

    工厂模式是软件设计模式中的一种基础模式,它属于创建型模式,主要解决对象创建的问题,使得代码在面对多产品创建时更加灵活。在这个实验中,我们将深入理解并实践工厂模式的核心概念。 工厂模式的主要思想是定义一...

    设计模式之:工厂模式

    工厂模式是设计模式中的一种创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,当客户端请求创建一个产品对象时,它只需要向工厂类请求对应的对象,而无需知道具体的实现细节。这种模式的核心在于封装了...

    第四讲:工厂模式在开发中的运用

    在软件设计模式中,工厂模式是一种非常常见的创建型模式,它的主要目的是为了隔离对象的创建过程,使得客户端代码不直接负责实例化对象,而是通过一个共同的接口来获取对象,这样提高了代码的可复用性和可扩展性。...

    设计模式一:简单工厂模式(PHP源码)

    简单工厂模式是软件设计模式中的一种,它属于创建型模式,主要用来解决对象的创建问题。在PHP中,我们可以利用这种模式来简化对象的实例化过程,减少代码的耦合度,提高代码的可维护性。 简单工厂模式的核心思想是...

    简单工厂模式-工厂方法模式-抽象工厂模式

    在软件设计模式中,工厂模式是一组非常基础且实用的设计模式,主要分为简单工厂模式、工厂方法模式和抽象工厂模式。这些模式都是为了解决对象创建的问题,通过封装对象的创建过程,使得代码更加灵活,易于扩展和维护...

    Java设计模式之一工厂模式

    **Java设计模式之一:工厂模式** 工厂模式是软件设计模式中的创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,当客户端请求创建一个产品对象时,它只需要向工厂请求其创建所需的对象类型,而无需知道...

    简单工厂模式、工厂模式、抽象工厂模式案例(C++实现)

    1. 简单工厂模式: 简单工厂模式是一种静态工厂方法,它提供一个公共的工厂类来创建对象。在C++中,这个工厂类通常包含一个静态方法,根据传入的参数或者条件决定创建哪个类的实例。这种模式的优点是客户端无需知道...

    JAVA设计模式(01):创建型-工厂模式【简单工厂模式】(Simple Factory)

    **简单工厂模式**是软件设计模式中的一种,属于创建型模式。在Java编程中,它是一种用于创建对象的简便方法,将对象的实例化过程封装到一个单独的工厂类中,使得客户端代码无需直接调用具体类的构造函数,而是通过...

    Java工厂模式:简单工厂、工厂方法模式、抽象工厂模式代码示例

    工厂模式是Java设计模式中的一种创建型模式,旨在提供一种将对象创建与其实现分离的机制,增加软件的灵活性和可维护性。在Java中,工厂模式分为三种:简单工厂、工厂方法模式和抽象工厂模式。 **简单工厂模式** 是...

    JSP框架:工厂模式教学

    有一个 OEM 制造商代理做 HP 笔记本电脑(Laptop),后来该制造商得到了更多的品牌笔记本电脑的订单 Acer、Lenovo、Dell,该 OEM 商发现,如果一次同时做很...利用工厂模式改善设计,设计程序实现该 OEM 制造商的工厂模式

    工厂方法模式和抽象工厂模式

    抽象工厂模式会定义一个工厂接口,然后为每个平台提供一个具体的工厂实现,这些实现能创建出适合该平台的所有相关组件。 工厂方法模式与抽象工厂模式的主要区别在于: 1. **复杂度**:工厂方法模式只关注一个产品的...

    深入理解Python设计模式:工厂模式实践与应用

    设计模式是软件开发中的重要概念,其中工厂模式是一种常见的创建型设计模式。本文将深入探讨工厂模式的概念及实现方式,并通过Python代码示例演示如何在实际项目中应用工厂模式来创建对象。

    JS 设计模式之:工厂模式定义与实现方法浅析

    今天来说一说一种常见的设计模式:工厂模式。 工厂模式是一种创建对象的 创建型模式,遵循 DRY(Don’t Repeat Yourself)原则。在该模式下,代码将会根据具体的输入或其他既定规则,自行决定创建哪种类型的对象。...

    设计模式之一 3种工厂模式解析源码

    在软件设计领域,工厂模式是一种广泛应用的设计模式,它属于创建型模式,主要目的是为了封装对象的创建过程,使得客户端代码可以使用一个统一的接口来创建不同的对象,而无需关心具体的实现细节。工厂模式分为三种...

    工厂模式(简单工厂,普通工厂,抽象工厂)代码java

    在软件设计模式中,工厂模式是一种非常常用的行为型模式,它的主要目的是为了隔离对象的创建过程,使得客户端代码不直接创建对象,而是通过一个工厂类来负责对象的创建。这样可以使得系统更具可扩展性和可维护性。...

    简单工厂模式,工厂方法模式,抽象工厂模式

    本文将深入探讨三种工厂模式:简单工厂模式、工厂方法模式以及抽象工厂模式,并结合源码分析其应用场景和优缺点。 1. 简单工厂模式 简单工厂模式(Simple Factory Pattern)是一种静态工厂方法,它通过一个公共的...

    设计模式:01工厂模式-labview实现

    在“设计模式:01工厂模式-labview实现”这个主题中,我们将深入探讨如何利用LabVIEW(Laboratory Virtual Instrument Engineering Workbench)这一图形化编程语言来实现工厂模式。 LabVIEW是由美国国家仪器公司...

    工厂模式源代码

    工厂模式是软件设计模式中的一种,属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,当我们创建对象时,不会直接实例化具体的产品类,而是通过一个共同的接口或者抽象类,即工厂类来创建。这样做的...

    C#面向对象设计模式纵横谈(25):设计模式总结

    1. 工厂模式:工厂模式是一种创建型设计模式,提供了一种创建对象的最佳方式,通过抽象工厂接口,避免了代码与具体类的耦合,提高了系统的可扩展性。 2. 单例模式:单例模式确保一个类只有一个实例,并提供全局访问...

Global site tag (gtag.js) - Google Analytics