原型 设计模式,原型设计步骤
00-1010简述(定义)、略夸(优缺点)、顺带(适用场景)、强调(深浅克隆)、多用(结构、代码实现)
目录
什么是原型模式:原型模式用于创建重复对象,同时确保性能。使用已经创建的实例作为原型,并通过复制原型对象来创建一个或多个与原型相同或相似的新对象。
例子:我们都玩过手淫这个游戏。敌机数不胜数,但是如果每个敌机都要实例化一遍,那么自然我们的功能就很复杂了。所以这个时候,我们的原型模型就派上用场了。只能实例化一个平面,其他的都可以按照他复制。
00-1010原型模式优势:
1.当创建新的对象实例很复杂时,使用原型模式可以提高通过现有实例创建新实例的效率。2.产品类别可以动态增加或减少。3.原型模式提供了一个简单的创建结构。4.对象的状态可以通过深度克隆来保存。
原型模式的缺点:1。修改已有类时,必须修改其源代码,违背了开放封闭原则;2.实现深度克隆时需要编写复杂的代码。
00-1010原型模式的应用场景:1。对象种类繁多,不可能整合成一个类;2.很难根据类生成实例;3.当您希望将框架从生成的实例中分离出来时。
00-1010原型模式下需要讲两个概念,即深度克隆和浅层克隆。顾名思义,浅层克隆只复制基本属性(如八种基本类型),实际上并不复制引用类型,只复制对应的引用(复制地址)。
浅层克隆:如果原型对象的成员变量是值类型(比如八个基本类型),那么就是直接复制;如果是复杂类型,复制对应的内存地址即可。换句话说,一个成员变量(字符串、枚举等。)的复杂类型,带有修改克隆对象的原型对象将被共享(类似于response)。值类型是不共享的。
深度克隆:深度克隆是指一切都是分离的,都是复制的,复制后的一切都是独立的。修改克隆对象对原型对象没有影响(在浅层克隆中,修改克隆对象会改变原型对象)。
00-1010模式结构
模式主要包括三个部分:具体原型类、抽象原型类和访问类。具体原型类:抽象原型类的clone()方法是可以复制的对象抽象原型类;规定了具体原型对象必须实现的接口访问类;具体prototype类中的clone()方法类用于复制一个新对象,一张图走遍全球:
代码实现
1.创建一个具体的原型类RealizeType.java
Public RealizeType实现可克隆的{ realize type(){ system . out . println(原型创建成功);} public object clone()抛出clonenotsupportexception { system . out . println(混凝土原型复制成功);返回super . clone();}}2.原型模式测试类PrototypeTest.java
公共类PrototypeTest { public static void main(String[]args)抛出CloneNotSupportedException { realize type obj=new realize type();realize type obj 1=(realize type)obj . clone();System.out.println(obj==obj1?(obj==obj 1));}}3.运行结果
原型创建成功,具体原型复制成功,obj==obj1?错误的
以上是Java设计模式原型设计实例的详细内容。有关Java原型设计模式的更多信息,请关注热门IT的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。