从面向对象到模式再到真正的面向对象

12、使用面向对象模式 本文深入探讨了面向对象模式在软件开发中的应用,包括创建型、结构型和行为型模式的定义与示例,并通过具体的访问者模式实例展示了如何在Java中实现这些模式。同时,文章还提供了编程模式的最佳实践和常见误区分析,帮助开发者更好地理解并灵活运用设计模式以提高代码质量。 阅读详情
从面向对象到模式再到真正的面向对象


Alan Shalloway 著 透明 译

(译序:
本文摘自Design Patterns Explained: A New Perspective on Object-Oriented Design一书的前言部分。通过本文,读者可以大概了解学习设计模式的过程和效果。同时,作者谦虚谨慎的态度也是非常值得我们中国软件开发者学习的。
译者保留本文一切权利。如果需要将本文用于非营利性目的,请E-mail通知我:gigix@263.net)

这本书的很多地方都复述了我自己学习设计模式的经验。在学习设计模式之前,我认为自己理所当然是面向对象分析和设计的专家。我曾经为各种行业的客户做过一些还算给人深刻印象的设计和实现。我会使用C++并且已经开始学习JAVA。我的代码中的对象格式优美封装紧密。我可以在继承体系中设计优秀的数据抽象。我想我已经懂得面向对象了。

现在回头看看,我发现那时其实我还根本不知道面向对象设计的全部能力,尽管我一直按照专家建议的方式来做。直到我开始学习设计模式,我的面向对象设计能力才得到了扩展和深化。学习设计模式使我成为了一个更好的设计者,甚至是我还没有直接使用那些模式的时候。

我从1996年开始学习设计模式。当时我正在西北部一家大型航天公司担任C++/面向对象设计顾问。有几个人劝说我领导一个设计模式学习组。正是在那里我遇到了本书的另一个作者Jim Scott。在那个学习组中发生了几件有趣的事情。首先,我开始对设计模式着迷。我可以把自己的设计和其他更有经验的人的设计相比较,我爱上了这种感觉。另一方面,我发现我并没有完全做到"对接口做设计",也没有随时注意"一个对象是否可以在不知道另外对象的类型的情况下使用另外对象"。同时我注意到,那些面向对象的初学者--通常他们被认为过早开始学习设计模式--从这个学习组得到的收益与那些面向对象的专家不相上下。设计模式向学习者展现出优秀的面向对象设计实例并阐述基本的面向对象设计原则,而这些使学习者的设计更快地成熟起来。在整个学习进程结束之后,我确信:设计模式,这是面向对象设计被发明之后软件设计中最好的东西。

但是,看看那个时候我自己的工作,我发现我根本还没有在自己写的代码中结合任何一个设计模式。

当时我只是认为自己还没有学到足够的设计模式,还需要学习更多。那时候,我只知道六个设计模式。然后我可以说是得到了顿悟。我在一个项目中担任面向对象设计顾问,并需要为这个项目创建一个高层设计。这个项目的领导人极其聪明,但在面向对象设计领域,他可以说是一个新手。

这个问题本身并不困难,但需要非常注意确保代码容易维护。按照惯例,在看过问题两分钟之后,我便有了一个设计--采用了我常用的数据抽象的途径。很不幸的是,很显然这不会是一个好的设计。简单的数据抽象已经让我尝到过失败的滋味。我必须找到一些更好的设计思路。

两个小时过去了。在使用了我所知道的所有设计技术之后,情况仍然没有好转。我的设计基本上都还是和从前一样。而最让我感觉受挫的是,我知道一定有一个更好的设计,但我就是找不到它。更具讽刺意义的是,我甚至还知道四个设计模式就"生活"在我的问题中,但我看不出应该如何使用它们。在这里,我,一个被认为是面向对象设计专家的人,被一个简单的问题困住了!

我实在觉得很受挫,于是我停了下来,开始绕墙行走以清醒头脑,并告诉自己:至少10分钟里我不再想这个问题。呵呵,30秒之后,我又开始想它了!但我获得了一种领悟并完全改变了我对设计模式的看法:设计模式无法作为独立的条款使用;我应该把设计模式放在一起使用。

模式是应该被结合在一起来共同解决一个问题的。

以前我曾经听到过这句话,但那时我并没有真正理解它。因为软件开发中的模式往往被介绍为"设计模式",所以我总是在"模式最主要的贡献是在设计阶段"的假设下努力。我的想法是:在设计世界里,模式就好象是类之间优美的联系。然后,我阅读了Christopher Alexander那本令人惊讶的书--The Timeless Way of Building。我学到了:模式存在在所有的阶段--分析、设计以及实现--之中。Alexander在书中讨论了如何使用模式来帮助理解(乃至描述)问题领域,而不是仅仅在理解了问题领域后使用模式来创建一个设计。

我的错误是:我尝试先创建问题领域中的类,然后将这些类缝合起来形成最终的系统--Alexander把这样的过程称为"一个坏主意"。我从来没有问过自己:我是否拥有正确的类?仅仅因为这些类看起来如此正确、如此明显。我拥有的,是在我开始分析时立刻进入了我的脑海的类,是我们的老师告诉我们应该在系统的描述中寻找的"名词"。但是我的错误就是我仅仅尝试把它们简单的放在一起。

当我回过头,开始使用设计模式和Alexander的方式来指导自己创建我的类时,仅仅几分钟之后,一个优秀得多的解决方案在我的脑海中显露出来。这是一个很好的设计,于是我们把它应用在产品之中。我很兴奋--为我设计了一个好的解决方案,更为设计模式的威力。从此,我开始在自己的开发工作和教学中结合设计模式。

我开始发现,那些刚开始学习面向对象设计的程序员也可以学习设计模式。并且他们可以在这个学习过程中为自己的面向对象设计能力打好基础。这对于我自己是真的,对于我所教的那些学生也是真的。
想象一下我的惊讶!我读过的设计模式书籍和与我交谈过的设计模式专家都曾经告诉我:在开始学习设计模式之前,你真的需要认真进行面向对象设计的基础训练。然而,我用我自己的眼睛看见,同时学习面向对象设计和设计模式的那些学生,他们掌握面向对象设计的进度比那些只学习面向对象设计的学生更快。甚至他们掌握设计模式的进度看上去几乎和那些有经验的面向对象实践者一样快。

我开始把设计模式用做我的教学基础。我开始把我的课程叫做"面向模式设计:从分析到实现的设计模式"。

我希望我的学生能理解这些模式,并且我发现使用一个探索的过程是帮助他们理解的最好办法。举个例子,我发现如果要向学生们讲解Bridge模式,我最好能向他们展示一个实际问题,然后让他们尝试为这个问题设计一个解决方案。我会给他们一些指导性的原则和策略--我发现大多数设计模式都指出了这些。经过这个探索过程,学生们最后找到了解决方案--被称为Bridge模式--并牢牢记住了它。

无论如何,我还发现这些指导性的原则和策略可以用来"派生"出这些设计模式中的几个。"派生出一个设计模式",我说这句话的意思是:如果我看到一个问题并且知道可以用一个设计模式来解决这个问题,我就可以通过这些指导性的原则和策略来得到该模式所表达的解决方案。我向我的学生们明确指出,我们不会真的通过这种方法得到设计模式。我只是阐明一种可能的思考过程。模式的发现者通过这样的过程得到了最初的解决方案,并最终把解决方案归类成设计模式。

一段小小的离题

在我现在看来,这些指导原则及策略都非常清楚了。当然,它们在"四人帮"的设计模式书中都有描述。但是,由于我自己对面向对象范式的理解有限,我花了很多时间来理解这些原则和策略。直到我在自己的思想中结合了四人帮及Alexander的工作、Jim Coplien在通用性和可变性上的工作、Martin Fowler在方法论和分析模式上的工作之后,这些原则对我才算足够清楚,我才能和他人谈起这些原则。这帮助我决定开始为他人解释一些东西的生活,这样我不会过分轻易的假想自己的能力--当仅仅为自己工作时,我很容易产生这样的假想。

我的能力可以帮助我更好的解释这几个很有威力的原则和策略。并且当我开始解释更多四人帮的模式时,它们更加有用了。实际上,在我设计模式课程中,我用这些原则和策略来解释12到14个模式。

我还发现,我开始在自己的设计中使用这些原则,不管是否使用设计模式。这并没有让我感到惊讶。如果使用这些原则和策略最终让我的设计中出现了一个设计模式,这就是说它们给了我得出优秀设计的方法(因为设计模式都是已经得到承认的优秀设计)。如果使用了这些技术,难道我还会因为不知道某个模式--不管它是否出现--的名字而得到不好的设计吗?

这些领悟帮助我更好的进行我的训练过程(以及我现在的写作过程)。我已经把我的教学进行了好几个阶段。我正在向学生们教授面向对象分析和设计的基础。我在课程中教授设计模式、使用它们来阐述优秀的面向对象分析和设计的例子。另外,通过使用设计模式来教授面向对象概念,我让我的学生们更好的理解了面向对象的原则。而且通过学习指导性原则和策略,我的学生们现在可以创建出质量与模式相媲美的设计。

我在这里讲这个故事,因为本书所讲的模式几乎与我的课程所讲的一样。实际上,从第三章开始,这本书基本上就是我的两天课程--面向模式的设计:从分析到实现的模式--中的第一天。

阅读本书,你可以学到这些模式。但更重要的是,你可以学到:为什么它们可以起作用?它们怎样在一起工作?以及它们所依赖的原则和策略。这对你积累自己的经验将很有帮助。当我在本书中展现出一个问题时,如果你能联想到一个你曾经历过的类似的问题,这将对你很有帮助。本书并不讲述新的知识或新的模式,而是给你一个看待面向对象软件开发的新的视角。我希望在你的学习过程中,你自己的经验与设计模式的原则结合之后能形成一个强有力的联盟。

Alan Shalloway
2000年11月

补充:
我们不能一直的只顾着写程序,需要学习设计模式,况且java是纯面向对象的语言

个人认为如果一个程序员不懂设计模式的程序员和不懂数据结构的程序员一样,都是一个不合格的程序员!!!
设计模式精解 译者:熊节 程序员必看书籍之一 part1 设计模式精解(Design Patterns Explained) 译者:熊节 编者:(美国)(Shalloway Alan)沙洛韦 (美国)(Trott James R.)特罗特 本书从一个新的视角描述面向对象设计,将面向中对象编程的原则与运用设计模式力量创建健壮、可靠的软件开发环境结合起来。书中采用实用、恰当的例子,指导读者用模式解决普通的编程问题,并且解释现代软件设计模式的优越性。本书适用于学习面向中对象设计和设计模式的学生、程序员以及从事软件开发的人士。 本书要点包括: 对象、封装和继承的新观点。 设计模式的思想、起源及其在软件设计学科中的应用。 模式基础以及使用统一建模语言(UML)进行面向对象软件开发。 如何实现关键模式——Strategy(策略)、Observer(观察者)、Bridge(桥接)、Decorator(装饰)等等。 共同点/变化点分析、设计模式以及它们如何帮助理解抽象类。 立即下载

相关推荐

COMSOL两相流(相场法)

COMSOL是一款功能非常强大的多物理场仿真软件,拥有可视化和后处理工具,可方便有效的展示您的仿真效果,具有灵活、高效、友好的特点,软件能够为用户提供各类工程问题的解决方案,从而帮助广大研究和工程人员能够在科研上取得新突破。 COMSOL可以实现声学、传热、流体力学、结构力学等方面的模拟仿真,具体模块如下图所示。 COMSOL软件设置流程 定义需要求解的问题类型:针对一个需要仿真的问题,需要先对问题进行分析;分析该问题用到哪些物理场,什么样的几何模型,以及如何设置研究等。该步骤可以使用COMSOL中的

weixin_47139559的博客 1万+

彻底理解面向对象,看完这一篇就够了

面向对象(Object Oriented)是软件开发方法,一种编程范式。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。 想要了解更多面向对象,就来智一面吧: 了解更多 一、基本概念 对象的含义是指具体的某一个事物,即在现实生活中能够看得见摸得着的事物。在面向对象程序设计中,对象所指的是计算机系统中的某一...

weixin_57174474的博客 3201

大疆 DJI Mobile SDK实战指南——从零构建Android示例开发环境

本文提供了一份详尽的DJI Mobile SDK Android开发环境搭建实战指南。文章手把手教你从注册开发者账号、获取App Key,到配置Android Studio、下载官方示例代码,最终成功运行DJI官方Android示例程序,帮助开发者快速入门无人机应用开发,避开常见编译与依赖问题。

weixin_29188043的博客 275

Java是真正的面向对象_Java中的面向对象I

一.首先来了解一下Java面向对象的五个程序设计方式:1.万物皆对象Java以类为基本模块来将问题抽象化,在计算机中解决实际生活中的问题2.程序为对象的集合,程序中的类通过互发消息来告知彼此要做的消息即为对一个类的方法的调用3.每个对象都有其他对象构成的存储在新建的类中可以包含一个以存在的类的对象,即组和实现代码复用4.每个对象都有其类型对象时某个类的实例,而类就是对象的类型5.某一特定类型的对象...

weixin_39520979的博客 102

10、现代统计方法:趋势面分析、薄板样条与广义线性模型

本文系统介绍了空间预测建模中的三种现代统计方法:趋势面分析(TSA)、薄板样条(TPS)和广义线性模型(GLM)。详细阐述了每种方法的原理、实现步骤、参数优化与预测评估,并结合R语言代码示例展示了在实际数据中的应用。文章还提供了方法对比流程图与土壤湿度预测案例,帮助读者根据数据特征选择合适模型,提升空间预测的准确性与可靠性。

play7的博客 158

64、5G 侧链通信技术详解

本文详细解析了5G侧链通信的关键技术,包括资源感知与选择、UE间协调、混合ARQ、功率控制、信道探测与CSI报告以及侧链同步。资源感知与选择通过周期性或随机方式实现资源分配,UE间协调通过主动或被动方式避免资源冲突。混合ARQ机制确保数据传输可靠性,功率控制和信道探测优化传输质量并减少干扰。侧链同步则通过多种方式确保设备间时间一致性。这些技术相互配合,构建了高效稳定的5G侧链通信体系,适用于智能交通、物联网、应急通信等多个领域,为未来无线通信发展提供强大支撑。

oil88的博客 102

面向对象模式

面向对象模式

boysky0015的博客 635

【报错解决】OpenClaw 报错 `openclaw: command not found`:全局命令未加入系统 PATH 的深度排查与修复指南

在国产AI工具链开发中,OpenClaw作为关键命令行工具常出现command not found报错。本文深度分析该问题的根源——Linux环境变量PATH未包含用户级安装目录(~/.local/bin)。通过四种解决方案(临时PATH修改、永久配置、软链接、虚拟环境处理)和排错Checklist,揭示"命令存在却找不到"的本质是路径配置问题,特别适用于Docker/国产Linux/非root环境。文中强调理解Linux工具链机制对国产AI开发的重要性,并指出这是开发者掌握环境

博客 5383

MVC、面向对象模式

php个人博客 无论是我们在学习php编程的过程中,还是我们已经参加工作后,我们这些码农们津津乐道的就是mvc。但是到底什么才是mvc,mvc的编程到底又有什么好处和坏处,下面,就我一个php新手谈一下我对于mvc的理解。 说到mvc其实就不得不说面向对象,其实php原本并不是面向对象的语言,只是后来引入了java的面向对象。包括现在她也并不是纯的面向对象的语言,php可以面向对象编程

地狱中仰望天堂的专栏 1601

【Unity 实用工具篇】 | Unity网格破碎插件 unity-fracture

前面写过一篇Unity中物体破碎效果的插件:【Unity 实用工具篇】 | Unity物体破碎效果 OpenFracture 本文介绍一个另外的工具unity-fracture,也可以实现网格破碎效果,且功能与OpenFracture略有差异。

努力前行,总会成为自己心中的那道光 1万+

mindie部署qwen3-8b

2. 确认目录文件权限是否如下所示,若存在不匹配项,则参考以下命令修改权限。否则要stop容器之后重新start,重新从《以下是在容器中的操作》开始操作。ctrl +d 让命令停止之后,需要等待一段事件让其释放,否则还会有占用。1. 若安装路径为默认路径,执行如下命令,进入MindIE安装目录。# 配置CANN环境,默认安装在/usr/local目录下。3. 运行以下命令初始化各组件环境变量,并开启日志打印。如果报错,可能有些线程没法去除,删除容器重新操作。# 配置模型仓环境变量。以下是在容器中的操作。

andeyeluguo的博客 1037

Java面向对象设计模式

设计模式(Design Patterns)                                   ——可复用面向对象软件的基础       设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式

IT界寿险规划师的博客 1万+

假期搞定!2026国社科申报AI全攻略指南:从选题到创新,7大核心要点手把手教你!

最后给大家推荐的400多所高校教师都在用的AI平台——高级学术版专业应用平台,集成了国际主流学术应用,以及ChatGPT、Claude、Gemini、Grok等Al大模型的高级版本平台,还有,可以辅助大家高效完成科研和学术写作任务,当然撰写硕博论文,课题、职称论文、国社科、国自然基金本子也是手拿把掐。你的任务是:用高度凝练的方式说明在(某一明确国家战略 / 政策方向,如:中国式现代化、共同富裕、基层治理现代化、数字中国、文化强国、国家安全等)背景下,我究竟要研究一个什么“具体而可操作的问题”。

智能AI让学术科研更容易 625

【C++设计模式】面向对象设计模式

当一个UI类要依赖于(继承)其中元件的实现的类时,这个是不稳定的,当增加一个元件或者修改一个元件的实现方式,就会造成UI类的变化,是非常不稳定的设计,UI类与那些元件类都应该依赖于一个稳定的抽象类,利用多态的方式去实现元件的展示。对象接口与其功能实现是分离的,不同对象可以请求做不同的实现,两个具有相同接口的对象可以有完全不同的实现。2.抽象的稳定性不应该依赖于实现的细节,实现的细节会变化,实现的细节应该依赖于抽线的稳定。一个类想要增加该类的功能是允许的,但是想要修改本身就存在的功能是不允许的。

weixin_52199109的博客 1006

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

【C#面向对象设计模式】01. 面向对象设计模式与原则

只需要在新的文件里增添新的员工类,让其继承自Employee抽象类,并重写GetSalary()方法,然后在EmployeeFactory.GetEmployee方法中根据相关条件,产生新的员工类型就可以了。使用面向对象编程语言,可以推动程序员以面向对象的思维来思考软件设计结构,从而强化面向对象的编程范式。随着客户公司业务规模的拓展,又出现了更多类型的公司,比如钟点工、计件工……我们需要设计一个人事管理系统,其中的一个功能是对各种不同类型的员工,计算其当月的工资——不同类型的员工,拥有不同的薪金计算制度。

Cziii的博客 698

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

【设计模式】面向对象的设计模式概述

设计模式的灵感源于建筑领域。1977年,Christopher Alexander在《A Pattern Language》中提出253个建筑模式,强调“环境条件 - 目标问题 - 解决方案”的通用范式。1994年,GoF(四人组)将模式思想引入软件工程,出版《设计模式:可复用面向对象软件的基础》,总结23种经典模式(不包含简单工厂模式),奠定了现代软件设计的基础。设计模式是前辈们对面向对象编程设计中反复出现的问题总结的一套解决方案,是一种共享专家设计经验的总结。

OpenSeek的博客 1475

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

js的面向对象编程思想-面向对象的四种设计模式

面向对象 面向对象是一种编程思想,它是以对象数据类型为导向的一种编程思想; JS中有句话 万物皆对象 JS c++ PHP java … 面向对象开发 (OOP) object oriented programming 面向对象思想的三种特性 三种特性详细介绍的百度网址 面向对象的三种特性 封装 继承 多态 面向对象的四种设计模式 单例模式 工厂模式 构造函数模式 原型模式 ...

qq_41363062的博客 1585

面向对象模式精讲

文章目录面向对象模式精讲OOP与OOAD七大设计原则设计模式类型简单工厂模式工厂方法模式构建者模式 面向对象模式精讲 Spring 常见设计模式剖析 http://t.kaikeba.com/MDEf Spring 全家桶精讲 http://t.kaikeba.com/MDE7 Java 透过单例模式聊开发编程 http://t.kaikeba.com/M4oG OOP与OOAD OOA:面向对象分析 OOD:面向对象设计 OOP:面向对象编程 三者连在一起就是面向对象分析、设计、编程(实现),正好对应

对白的学习小屋 182

面向对象常见的设计模式

面向对象基本概念 三大特性:封装-继承-多态 一些相关的重要概念:抽象-组合-动态绑定-消息传递 由面向对象基本特性得来的设计模式包括四类几十种,如下所示: A.设计原则 OCP-开放封闭原则:开放扩展,封装更改 LSP-里氏代换原则:子类必须能够替换其父类 DIP-依赖倒转原则:抽象不应依赖细节,细节应依赖抽象(面向接口) ISP-接口隔离原则:一个类对另外一个类的依赖应当建立在最小的接口上 ...

weixin_42502858的博客 652

面向对象的23种设计模式

首先呢,设计模式是针对面向对象来的。再说设计模式之前我们先来说一下六大设计原则。 首先最基础的开闭原则:对扩展开放,对修改关闭。 为啥这是最基础的,因为我们都知道软件是要改的。对扩展开放保证了可以增加功能,像泛型啦这些。对修改关闭保证了像前的兼容性,jdk7兼容jdk6这样。所以开闭原则围绕软件的整个生命周期。在说其余五个之前我先说一下程序设计的模块内高内聚,模块间低耦合,其实把类看成一个模块,结

Android程序员的博客 1万+

面向对象设计模式详解

本文以汽车工厂为例,系统讲解了9种常用设计模式的实际应用。设计模式分为创建型(如单例模式、工厂方法模式)、结构型(如适配器模式、装饰器模式)和行为型(如观察者模式、策略模式)三大类。通过汽车制造场景的类比,文章生动展示了每种模式的核心思想、实现方式和适用场景,如单例模式类比工厂总控中心、工厂方法模式类比品牌生产线等。各种模式的代码示例和对比分析,使抽象的设计模式概念变得直观易懂,帮助开发者理解如何运用这些"最佳实践"构建更高效、灵活的软件系统。

Broken_x的博客 1308

面向对象、工厂模式、构造模式

  面向对象(Object-Oriendted,OO)的语言有一个标志,那就是它们都有类的概念,而通过类可以创建任意多个具有相同属性和方法的对象。ECMAScript中没有类的概念【类是面向对象程序设计(OOP,面向对象编程)实现信息封装的基础。类是一种用户定义类型,也称类类型。每个类包含数据说明和一组操作数据或传递消息的函数。类的实例称为对象】  ,因此它的对象也与基于类的语言中的对象有所不同。...

跟着信仰走 369

面向对象设计模式:23种经典模式解析

1.背景介绍 面向对象设计模式是一种软件设计的方法,它提供了一种抽象的方式来解决常见的软件设计问题。这种方法通过将问题分解为一组可重用的、可组合的对象来解决。这些对象可以表示实体、概念或抽象,并可以通过消息传递来交互。设计模式可以帮助程序员更快地开发高质量的软件,并提高代码的可读性、可维护性和可扩展性。 在本文中,我们将讨论23种经典的面向对象设计模式,并详细解释它们的定义、原理、优缺点和应用...

AI天才研究院 2380

面向对象笔记4、面向对象模式:单例模式、工厂模式

1 面向对象设计模式 1.1 什么是设计模式 设计模式,就是面向对象代码设计经验的总结 可以实现代码重用、节省时间、对于后期维护十分方便 1.2 常用的设计模式 单例模式:一个类只能创建一个对象,不管怎样,都无法创建第2个对象 工厂模式:根据传递的不同类名,来创建不同类的对象的工厂 1.3 单例设计的要求(三私一公) 私有的静态的保存对象的属性 私有的构造方法,阻止类外new对象 私有的...

Z_phone的博客 252
上一篇: Pattern-Oriented Software Architecture
下一篇: The Unified Modeling Language Reference Manual
minigpsnet
博客等级 码龄22年 62粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值