zoukankan      html  css  js  c++  java
  • 简单工厂与单例

    单例模式和工厂方法可以说是在软件设计模式中目前用得比较多的,目前在公司做的项目也经常会接触到,他们都实现了类的创建封装,让代码维护变得更加简单。
         首先说单例模式,单例模式可以保证整个系统中一个类只有一个实例,而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源,如果只希望在系统中某个类的对象有且只能存在一个,单例模式是最好的解决方案。
         对于某些系统来说,有些类只有一个实例很重要,如最常见的数据库连接配置对象。它在整个系统中只需要一个就足够了,多了就会产生很多不必要的开销,造成资源浪费。
         工厂方法则非常复杂,这里只说比较简单的简单工厂模式,而感兴趣的读者可以去看看工厂方法模式。从设计模式的类型上来说,单例模式和简单工厂模式都是属于创建型模式,简单工厂模式又叫做静态工厂方法,是由一个工厂对象决定创建出哪一种产品类的实例。
         简单工厂模式一般会分三个角色,第一个工厂(Creator)角色,它是负责实现创建所有实例(产品)的内部逻辑。工厂类可以被外界直接调用, 创建所需的产品对象。第二个抽象产品(Product)角色,为所有不同类型的产品,定义一种借口。第三个实例产品(Concrete Product)角色,是简单工厂模式的创建目标,所有创建的对象都是充当这个角色的某个具体类的实例。
         单例模式和工厂方法都为实例对象的创建提供了封装特性,有利于整个软件体系结构的优化。但是这些模式亦不能乱用,比如单例模式,在一个系统中如 果需要有多个实例的时候,使用单例模式甚至会出现功能错误。所以在使用设计模式的时候我们需要多方面考虑,让模式为我们带来真正意义上的优化。

    简单工厂:

  • 相关阅读:
    win7 windows server 2008R2下 https SSL证书安装的搭配(搭配https ssl本地测试环境)
    (转载)数据库表设计-水电费缴费系统(oracle)
    考勤系统——代码分析datagrid
    (转载)模拟银行自助终端系统
    Amazon验证码机器算法识别
    [译] 理解 LSTM 网络
    循环神经网络(RNN, Recurrent Neural Networks)介绍
    机器学习之线性分类器(Linear Classifiers)——肿瘤预测实例
    word2010无法显示endnote x7插件及破解endnote x7
    ubuntu16.04+caffe训练mnist数据集
  • 原文地址:https://www.cnblogs.com/System-out-println/p/5244074.html
Copyright © 2011-2022 走看看