设计模式之抽象工厂模式
工厂方法模式通过引入工厂等级结构,解决了简单工厂模式中工厂类职责太重的问题,但由于工厂方法模式中的每个工厂只生产一类产品,可能会导致系统中存在大量的工厂类,势必会增加系统的开销。
工厂方法模式通过引入工厂等级结构,解决了简单工厂模式中工厂类职责太重的问题,但由于工厂方法模式中的每个工厂只生产一类产品,可能会导致系统中存在大量的工厂类,势必会增加系统的开销。
在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的。但是在一些情况下,new操作符直接生成对象会带来一些问题。举例来说,许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置;选择生成哪个子对象实例;或在生成你需要的对象之前必须先生成一些辅助功能的对象。在这些情况,新对象的建立就是一个“过程”,不仅是一个操作,像一部大机器中的一个齿轮传动。
那么如何能轻松方便地构造对象实例,而不必关心构造对象实例的细节和复杂过程呢?答案就是工厂模式。
如何同时提高一个软件系统的可维护性和可复用性是面向对象设计需要解决的核心问题之一。
在面向对象设计中,可维护性的复用是以设计原则为基础的。每一个原则都蕴含一些面向对象设计的思想,可以从不同的角度提升一个软件结构的设计水平。
Linux dig命令用来从 DNS 域名服务器查询主机地址信息。
Linux find 命令用于在指定目录下查找文件和目录。它可以使用不同的选项来过滤和限制查找的结果。使用语法如下:
find [-H] [-L] [-P] [-Olevel] [-D debugopts] [path...] [expression]参数说明:
Awk的基本功能就是查找具某种模式的文本行(或者其他单位的文本)。当匹配某个模式后,awk会对该行执行指定的动作。Awk然后继续输入行,直到文件输入处理完毕。
本文介绍 linux 常用的 stat 系列命令:
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使用.内存使用和执行时间对任务进行排序。
命令行的典型使用方式是,打开一个终端窗口(terminal window,以下简称"窗口"),在里面输入命令。用户与计算机的这种临时的交互,称为一次"会话"(session)。
会话的一个重要特点是,窗口与其中启动的进程是连在一起的。打开窗口,会话开始;关闭窗口,会话结束,会话内部的进程也会随之终止,不管有没有运行完。
一个典型的例子就是,SSH 登录远程计算机,打开一个远程窗口执行命令。这时,网络突然断线,再次登录的时候,是找不回上一次执行的命令的。因为上一次 SSH 会话已经终止了,里面的进程也随之消失了。
为了解决这个问题,会话与窗口可以"解绑":窗口关闭时,会话并不终止,而是继续运行,等到以后需要的时候,再让会话"绑定"其他窗口。
free 命令是一个显示系统中空闲和已用内存大小的工具。free 命令的输出和 top 命令相似。大多数Linux发行版已经含有 free 命令。
sed 是linux 中的流式编辑器,用于过滤和修改文本。sed 会根据脚本命令来处理文本文件中的数据,这些命令要么从命令行中输入,要么存储在一个文本文件中,此命令执行数据的顺序如下:
Linux tee命令用于读取标准输入的数据,并将其内容输出成文件。
在开始学习java语言之前,先了解Java的一些特性:
James Gosling和Henry McGilton撰写的白皮书 The Java Language Environment中解释了上述每个流行词 。
Java开发过程:
Java平台包含两个组件:Java虚拟机和Java应用程序编程接口(API).虚拟机用于执行java程序,sdk 提供了系统库和部分高级API库。
收集了一些工作中常用的shell命令的使用。
收集了一些逻辑思维原则和模式。
ubuntu 日常开发机的安装优化记录。
本文是关于git的使用技巧。
本文是关于zsh的使用技巧。Zsh是比Bash更好用的Shell。
在这篇文章中,我将向你们介绍一个开发模型,早在差不多一年前,我已经将这个模型应用于我的多个项目,而事实证明,这个模型是非常成功的。其实这篇文章我早就打算写了,只是一直没有时间,直到现在。在这篇文章中我将不会谈及任何项目细节,分支策略和发布管理才是本文的核心内容。
C的内存使用分为三个部分:
– 静态:全局变量存储,在整个程序运行期间永久存储。 – 栈:局部变量存储(自动、连续内存)。 – 堆:动态存储(大型内存池,不按连续顺序分配)。