摘要: 在软件系统中,当创建一个类的实例的过程很昂贵或很复杂,并且我们需要创建多个这样类的实例时,如果我们用new操作符去创建这样的类实例,这未免会增加创建类的复杂度和耗费更多的内存空间,因为这样在内存中分配了多个一样的类实例对象,然后如果采用工厂模式来创建这样的系统的话,随着产品类的不断增加,导致子类的数 阅读全文
posted @ 2016-12-15 17:31 Napoléon 阅读(618) 评论(0) 推荐(0) 编辑
摘要: 在软件系统中,有时需要创建一个复杂对象,并且这个复杂对象由其各部分子对象通过一定的步骤组合而成。 例如一个采购系统中,如果需要采购员去采购一批电脑时,在这个实际需求中,电脑就是一个复杂的对象,它是由CPU、主板、硬盘、显卡、机箱等组装而成的,如果此时让采购员一台一台电脑去组装的话真是要累死采购员了, 阅读全文
posted @ 2016-12-15 16:33 Napoléon 阅读(2800) 评论(2) 推荐(0) 编辑
摘要: 在软件开发过程中,我们经常会遇到处理简单对象和复合对象的情况,例如对操作系统中目录的处理就是这样的一个例子,因为目录可以包括单独的文件,也可以包括文件夹,文件夹又是由文件组成的,由于简单对象和复合对象在功能上区别,导致在操作过程中必须区分简单对象和复合对象,这样就会导致客户调用带来不必要的麻烦,然而 阅读全文
posted @ 2016-12-15 16:05 Napoléon 阅读(818) 评论(1) 推荐(0) 编辑
摘要: 一、 适配器(Adapter)模式 适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本接口不匹配而无法在一起工作的两个类能够在一起工作。 名称由来 这很像变压器(Adapter),变压器把一种电压变换成另一种电压。美国的生活用电电压是110V,而中国的电压是220V。如果要在中国使用 阅读全文
posted @ 2016-12-15 15:09 Napoléon 阅读(471) 评论(0) 推荐(0) 编辑
摘要: 一、 命令(Command)模式 命令(Command)模式属于对象的行为模式【GOF95】。命令模式又称为行动(Action)模式或交易(Transaction)模式。命令模式把一个请求或者操作封装到一个对象中。命令模式允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令 阅读全文
posted @ 2016-12-14 18:08 Napoléon 阅读(1200) 评论(0) 推荐(0) 编辑
摘要: Observer 与 Subject 互为耦合,但是这种耦合的双方都依赖于抽象,而不依赖于具体。 一、观察者模式 目的 我们都知道解决一个问题有N种解决方式,但在面向对象的设计中如何能做到“高内聚,低耦合”,设计可重用的对象才是我们追求的。在设计过程中,我们经常会接触到一种情况:一个对象的行为引发其 阅读全文
posted @ 2016-12-14 12:08 Napoléon 阅读(474) 评论(0) 推荐(0) 编辑
摘要: 一、 工厂方法(Factory Method)模式工厂方法(FactoryMethod)模式是类的创建模式,其用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中。工厂方法模式是简单工厂模式的进一步抽象和推广。由于使用了多态性,工厂方法模式保持了简单工厂模式的优点,而且克服了它的缺点。在 阅读全文
posted @ 2016-12-14 11:26 Napoléon 阅读(628) 评论(1) 推荐(0) 编辑
摘要: 工厂模式专门负责将大量有共同接口的类实例化。工厂模式可以动态决定将哪一个类实例化,不必事先知道每次要实例化哪一个类。工厂模式有以下几种形态: 简单工厂(Simple Factory)模式 工厂方法(Factory Method)模式 抽象工厂(Abstract Factory)模式 一、 简单工厂( 阅读全文
posted @ 2016-12-14 11:06 Napoléon 阅读(408) 评论(0) 推荐(0) 编辑
摘要: 引入人、工厂、和斧子的问题 工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例对象,如A a=new A(). 工厂模式也是用来创建实例对象的,可能多做一些工作,但会给你系统带来更大的可扩展性和尽量少的修改量。 工厂方式封装: Sample有个继承如MySample 在程序中, 阅读全文
posted @ 2016-12-13 17:52 Napoléon 阅读(614) 评论(0) 推荐(0) 编辑
摘要: 单例模式三种写法: 第一种最简单,但没有考虑线程安全,在多线程时可能会出问题…… 第二种考虑了线程安全 第三种饥饿懒汉模式 一、 单例(Singleton)模式 单例模式的特点: 单例类只能有一个实例。 单例类必须自己创建自己的唯一实例。 单例类必须给所有其它对象提供这一实例。 单例模式应用: 每台 阅读全文
posted @ 2016-12-13 16:54 Napoléon 阅读(667) 评论(0) 推荐(1) 编辑