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

创建型设计模式

 
阅读更多

创建型模式

 

 

工厂:工厂方法---子类决定实例化那个类,抽象工厂---创建相关对象无需指定具体类。
原型:拷贝对象来创建新的对象
单例:确保一个类只有一个实例,自行实例化对外提供
建造者:对象的创建与表示想分离,同样的创建可以创建不同的表示

 

 

一、工厂方法与抽象工厂

 

一、定义:
工厂方法模式是用来创建一个产品的等级结构的,抽象工厂模式是用来创建多个产品的等级结构的

 

二、目的
1)重点在于"怎么创建",围绕着一种产品的构造,初始化这些细节上面,产品之间有很多可以复用的特征,所以会和模版方法相随,
工厂方法模式通常和模板方法模式一起结合使用。

2)重点在于"创建哪些"产品上,划分不同差异的产品线,并且尽量保持每条产品线接口一致,从而可以从同一个抽象工厂继承。

 

三、区别:

工厂方法创建一般只有一个方法,创建一种产品。
抽象工厂一般有多个方法,创建一系列产品。

工厂方法模式是采用inheritence,而抽象工厂模式是采用composition

抽象工厂模式与工厂方法模式的最大区别在于,
1、工厂方法模式针对的是一个产品等级结构,而抽象工厂模式则需要面对多个产品等级结构
2、区分产品族和等级结构。

分享到:
评论
3 楼 bierbobo 2012-05-14  
原型
1、继承Cloneable接口
2、clone方法不会调用构造方法,是在内存中进行二进制的拷贝

浅拷贝:引用指向原生对象的内存地址。
深拷贝:需要将数组和对象的值重新拷贝。

用final修饰的类对象成员就只能进行浅拷贝,因为类对象成员引用不可变。
2 楼 bierbobo 2012-05-14  
/**
* 饿汉式单例
*
*/
public class Singleton {

private static final Singleton instance=new Singleton();

private Singleton(){
}

public static Singleton getInstance(){
return instance;
}

}
1 楼 bierbobo 2012-05-14  
/**
* 懒汉式单例
*/
class Singleton1 {

private static Singleton1 instance;

private Singleton1(){
}

public synchronized static Singleton1 getInstance(){

if(instance==null){
instance=new Singleton1();
}
return instance;
}

}


/**
* 懒汉式单例
*/
class Singleton2{

private static Singleton2 instance;
private static Object lock=new Object();

private Singleton2(){
}

public static Singleton2 getInstance(){
if(instance==null){
synchronized (lock) {
if(instance==null){
instance=new Singleton2();
}
}
}
return instance;
}
}

/**
* 懒汉式单例
*/
class Singleton3{

private Singleton3(){
}

public static Singleton3 getInstance(){
return SingletonHolder.INSTANCE;
}

    private static class SingletonHolder
    {
        static final Singleton3 INSTANCE = new Singleton3();
    }


}

相关推荐

    5种创建型设计模式

    GOF的23中设计模式中,五种创建型模式的介绍。

    创建型设计模式(上)

    ### 创建型设计模式详解(上) #### 简介 创建型设计模式是设计模式的一种类型,主要用于处理对象的创建过程。这些模式提供了一种在客户端代码与对象创建过程之间建立解耦的方式,使得系统更加灵活,易于扩展。...

    创建型设计模式(下)

    ### 创建型设计模式详解 #### 单例设计模式 单例设计模式是一种常用的软件设计模式,其核心思想是在系统中确保某个类只有一个实例,并且能够全局访问该实例。这种模式适用于那些需要频繁创建和销毁的对象,例如...

    设计模式之创建型模式实验.docx

    创建型设计模式主要关注对象的创建,它们提供了一种在不指定具体类的情况下创建对象的方式,增强了系统的灵活性和可扩展性。在本实验中,我们将探讨五种常见的创建型设计模式:简单工厂模式、工厂方法模式、抽象工厂...

    创建型设计模式.doc

    创建型设计模式是软件设计模式中的一种,主要关注对象的创建过程,旨在提供一种创建对象的最佳方式,使得代码更加灵活,易于扩展,同时降低类与类之间的耦合度。在给定的文件中,提到了几种常见的创建型设计模式的...

    Java设计模式代码案例 (一):创建型设计模式.pdf

    创建型设计模式是设计模式中的一个重要类别,它们主要关注对象的创建过程,旨在解决对象创建过程中可能出现的问题,提高代码的灵活性、可读性和可维护性。在Java中,创建型设计模式主要包括五种:工厂模式、抽象工厂...

    创建型设计模式1

    创建型设计模式是软件设计模式中的重要类别,其主要目标在于如何优雅地创建对象,将对象的创建过程封装起来,使代码更加灵活、可维护,同时也降低了系统内部组件之间的耦合性。这些模式使得开发者在面对不同场景时,...

    创建型设计模式(下).rar

    在本压缩包"创建型设计模式(下).rar"中,包含了一份详细的PDF文档(10683240创建型设计模式(下).pdf),很可能是对创建型设计模式的深入解析和实例演示。这里,我们将探讨几种常见的创建型设计模式及其应用。 1...

    创建型设计模式---工厂设计模式实现

    创建型设计模式---工厂设计模式实现

    灸哥讲解创建型设计模式

    创建型设计模式是软件工程中的一种重要设计思想,主要用于解决对象的创建问题,使得代码更具可扩展性和可维护性。在后端开发,尤其是JAVA语言中,这些模式被广泛应用于构建复杂系统,提高代码复用率和灵活性。下面将...

    5. 创建型设计模式小结1

    创建型设计模式是软件设计模式中的重要类别,主要用于对象的创建。这些模式提供了一种在创建对象时封装变化的方式,使得代码更具可扩展性和可维护性。以下是对几种主要创建型设计模式的详细阐述: 1. 单例模式:...

    创建型设计模式(上).rar

    创建型设计模式是软件工程中一组用于处理对象创建机制的设计模式,它们旨在以灵活、可扩展的方式创建对象,同时保持代码的简洁性和可维护性。这些模式主要关注如何实例化对象,以及如何将实例化过程封装或隔离,使得...

    白话讲解创建型设计模式:单例原型构建

    本文将聚焦于创建型设计模式,特别是单例模式和原型模式,这两种模式在对象的创建方面扮演着重要的角色。 单例模式是一种限制类实例化次数的设计模式,确保在整个应用程序中,一个类只有一个实例存在。这在某些场景...

    实验二_航天班161班_6130116093_黄丹_创建型设计模式1

    实验二的创建型设计模式是面向对象编程中的重要概念,主要目标是简化对象的创建过程,同时保持良好的封装性。本实验涵盖了多个设计模式的实践,包括简单工厂模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式...

    软件设计模式作业 创建型设计模式

    (1):请使用抽象工厂模式设计系统。 (2):为系统增加一种新的主题,并实现。 (3):如果当系统主题发生变化的时候通讯录风格也发生变化,在这种情况之下上面设计的系统将如何变化? (4):(2)和(3)的结论...

    设计模式之创建型模式

    工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。在工厂模式中,一个工厂类负责创建对象,而客户端代码不再直接创建对象,而是通过调用工厂类的工厂方法来获取所需的对象。这样做有以下优点:隐藏了...

    C#面向对象设计模式纵横谈-1.Singleton 单件(创建型模式)

    Singleton模式是一种创建型设计模式,它确保一个类只有一个实例,并提供一个全局访问点来获取这个唯一的实例。这种模式在需要控制资源的唯一性或者全局访问点时非常有用,比如数据库连接、线程池或者缓存管理等。 ...

    gof创建型设计模式

    程序设计模式。gof的设计模式最为经典。4个创建型模式,值得我们深入学习。

    设计模式 创建型模式 Prototype模式(原型)

    Prototype模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节,工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建。...

    C#面向对象设计模式纵横谈-创建型模式

    创建型设计模式是面向对象设计模式的一种类型,主要关注对象的创建过程,旨在提供灵活、可扩展和易于管理的对象实例化机制。本文将深入探讨C#中的创建型模式,帮助开发者更好地理解和应用这些模式。 1. **单例模式...

Global site tag (gtag.js) - Google Analytics