DesignPattern(二) 创建型模式】的更多相关文章

创建型模式 创建型模式就是用来创建对象的模式,抽象了实例化的过程.所有的创建型模式都有两个共同点.第一,它们都将系统使用哪些具体类的信息封装起来:第二,它们隐藏了这些类的实例是如何被创建和组织的.创建型模式包括单例模式.工厂方法模式.抽象工厂模式.建造者模式和原型模式. 单例模式 单例模式指的是确保某一个类只有一个实例,并提供一个全局访问点.解决的是实体对象个数的问题,而其他的建造者模式都是解决new所带来的耦合关系问题.其实现要点有: 类只有一个实例.问:如何保证呢?答:通过私有构造函数来保证…
1.定义 将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式. 2.适用场景 1. 当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时. 2. 当构造过程必须允许被构造的对象有不同表示时. 3.评价 1. 它使你可以改变一个产品的内部表示. Builder对象提供给导向器一个构造产品的抽象接口.该接口使得生成器可以隐藏这个产品的表示和内部结构.它同时也隐藏了该产品是如何装配的.因为产品是通过抽象接口构造的,你在改变该产品的内部表…
假如我们需要建造一个房子,并且我们也不知道如何去建造房子,所以就去找别人帮我们造房子 第一步: 新建一个房子类House,里面有房子该有的属性,我们去找房子建造者接口HouseBuilder,我们要建造一栋平房,就去找PingFangHouseBuilder,该类继承自HouseBuilder,里面有具体建造房子的方法各种方法,比如造地板makeFloor,造墙makeWall等 第二步: 光有会建造房子的人还不行,我们还需要专门的设计师HouseDirector来调用这个建造房子的方法才行 第…
通过序列化的方式实现深拷贝 [Serializable] public class Person:ICloneable { public string Name { get; set; } public int Age { get; set; } public List<Friend> FriendList { get; set; } public object Clone() { MemoryStream memoryStream = new MemoryStream(); BinaryFo…
假如程序中有一个Person类,我的需求就是需要在整个应用程序中只能new一个Person,而且这个Person实例在应用程序中进行共享,那么我们该如何实现呢? 第一步: 新建一个Person类,类中我们将构造函数私有化,这样就不能再外部new一个了 第二步: 我们在公开一个Person属性实例或者获取Person实例的方法就可以在外部得到Person实例了,ok,看下面代码吧 代码如下: 单例模式的懒汉式实现 Person.java package com.designpattern.sing…
接着上一讲中的简单工厂继续讲解,假如我们有了需要采集新的水果梨子,如果我们使用简单工厂中的方式的话,就会新增一个Pear类,然后实现Fruit类,然后修改FruitFactory类中获取实例的方法 getFruitInstance,新增了if else,这样虽然解决了问题,但是却违反了“开放封闭”的原则,那么我们该怎么解决呢? 第一步: 我们可以新增一个抽象的工厂FruitFactory接口,在该方法中有一个getFruitInstance()方法,然后新增AppleFactory类,Banan…
简单工厂(Simple Factory,创建型模式) 第一步: 比如我们要采集苹果和香蕉,那么我们需要创建一个Apple类和Banana类,里面各自有采集方法get(),然后通过main方法进行调用,但是我们发现Apple和Banana都有采集get的方法,所以我们使用Fruit接口进行抽象出来,接口中有一个get方法,然后由Apple类和Banana类去实现,在调用的使用我们就可以使用多态了 第二步: 我们发现每次都需要自己去new一个Apple和Banana,感觉不爽,于是我们就去新建一个F…
读书笔记_探索式测试_混合探索式测试   一.测试场景 1.讲述用户故事 2.描述需求 3.演示产品功能 4.演示集成场景 5.描述设置和安装 6.描述警告和出错情况 二.使用基于场景的探索式测试 1.通过场景操作引入变化:操作后得到的新场景称为衍生场景. 插入步骤:增加更多数据.使用附加输入.访问新的界面 删除步骤 替换步骤 重复步骤 替换数据 替换环境 替换硬件 替换容器:浏览器兼容性 替换版本 修改本地设置:cookie.注册表.浏览器设置等 三.通过漫游测试引入变化 1.卖点测试法:模拟…
一:模式分类 从目的来看: 创建型(Creational)模式:负责对象创建. 结构型(Structural)模式:处理类与对象间的组合. 行为型(Behavioral)模式:类与对象交互中的职责分配. 从范围来看: 类模式处理类与子类的静态关系. 对象模式处理对象间的动态关系. 二:Singleton (创建型模式) 单件 1.动机(Motivation) 软件系统中,经常有这样一些特殊的类,必须保证他们在系统中只存在一个实例,才能确保它们的逻辑正确性,以及良好的效率. 如何绕过常规的构造器,…
创建型模式分为五类:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式 一.工厂方法模式:接口-实现类.工厂类…