创建型

java 常用23中设计模式

痞子三分冷 提交于 2020-04-10 10:41:25
Java总共有23中常见的设计模式。它们主要可以分为3类,创建型,结构型以及行为型。 创建型的设计模式有: 一、Singleton,单例模式:保证一个类只有一个实例,并提供一个唯一的全局访问点。 二、Abstract Factory,抽象工厂:提供一个创建一系列相关或者互相依赖的对象的接口,而无需指定它们的具体类。 三、Factory Method,工厂方法:定义一个用于创建对象的接口,Factory Method将一个类的实例化延迟到了子类。 四、Builder,建造模式:将一个复杂类的构建和表示分离开来,使得具有相同构建过程的类可以具有不同的表示。 五、Prototype,原型模式:用原型实例来指定创建对象的种类,并且通过拷贝原型来创建新的对象。 行为型的设计模式有: 六、Itrator,迭代器模式:提供一个方法顺序的遍历一个聚合对象的内部元素,而无需曝露这个对象的内部表示。 七、Observer,观察者模式:定义对象之间一对多的关系,当一个对象发生变化时,依赖于它的对象都会得到相应的通知更新。 八、Templete Method,模板方法:定义一个操作中的算法的骨架,而将一些步骤延迟到子类,Templete Method使得子类可以不改变算法的骨架就可以改变算法中的特定的步骤。 九、Command,命令模式:将一个请求封装为一个对象,从而使你可以用不同的请求对用户进行参数化

Java创建型模式的讨论

感情迁移 提交于 2019-12-10 05:05:53
创建型模式抽象了实例化过程。它们帮助一个系统独立于如何创建、组合和表示它的那些对象。一个类创建型模式使用继承改变被实例化的类,而一个对象创建型模式将实例化委托给另一个对象。 创建型模式有两个特点: 将具体的产品类的信息封装起来。 隐藏了产品类的实例是如何创建和组合的。 因此,创建型模式在什么被创建,谁创建它,它是怎样被创建的,以及何时创建这些方面提供了极大的灵活性。 创建型模式之间的关系 有时创建型模式是相互竞争的。例如,在有些情况下,Abstract Factory和Prototype用起来都很好。 有时它们是互补的。例如,Builder可以使用其它模式去实现某个构件的构建。Prototype可以在它的实现中使用Singleton。 1 引入一个迷宫的示例 因为创建型模式紧密相关,我们通过一个通用的例子来研究它们的相似点和相异点。 为一个电脑游戏创建一个迷宫。这个迷宫将随着各种模式的不同而略有区别。 我们仅关注迷宫是如何被创建的。我们将迷宫定义为一系列房间,一个房间有四面;这四面要么是一堵墙,要么是到另一个房间的一扇门。 定义一个接口MapSite表示通用的迷宫组件,它只有一个操作enter(),表示你进入了什么——另一个房间或碰壁。 使用enum来定义房间的四面:东南西北。 实现MapSite接口的具体组件包括Room,Door和Wall三个类: Room:保存一个房间号