基于抽象类实现的原型模式

This commit is contained in:
2018-09-25 22:39:55 +08:00
parent 580b5cd97c
commit e4ce7c3744
3 changed files with 40 additions and 0 deletions

View File

@@ -0,0 +1,14 @@
package top.fjy8018.designpattern.pattern.creational.prototype.abstractprototype;
/**
* 使用抽象类或者接口实现克隆接口可使得其所有子类都有克隆能力
*
* @author F嘉阳
* @date 2018-09-25 22:36
*/
public abstract class AbstractPig implements Cloneable {
@Override
protected Object clone() throws CloneNotSupportedException {
return super.clone();
}
}

View File

@@ -0,0 +1,8 @@
package top.fjy8018.designpattern.pattern.creational.prototype.abstractprototype;
/**
* @author F嘉阳
* @date 2018-09-25 22:37
*/
public class Pig extends AbstractPig {
}

View File

@@ -0,0 +1,18 @@
package top.fjy8018.designpattern.pattern.creational.prototype.abstractprototype;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
@Slf4j
class PigTest {
@Test
void cloneTest() throws Exception {
Pig p1 = new Pig();
Pig p2 = (Pig) p1.clone();
log.info(Integer.toHexString(p1.hashCode()));
log.info(Integer.toHexString(p2.hashCode()));
}
}