提交 e7bfae5c 编写于 作者: C chenjianqiang

增加模板模式

上级 778552cb
......@@ -2,7 +2,7 @@
<project version="4">
<component name="ChangeListManager">
<list default="true" id="e43e9168-5945-4f45-b4c2-1b6410d1eef8" name="Changes" comment="增加策略模式案例&#10;Signed-off-by: chenjianqiang &lt;wushanxi@gmail.com&gt;">
<change beforePath="$PROJECT_DIR$/src/com/pattern/SingletonPattern/SingleMain.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/pattern/SingletonPattern/SingleMain.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/com/pattern/PatternApplication.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/com/pattern/PatternApplication.java" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
......@@ -15,8 +15,8 @@
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="package-info" />
<option value="Interface" />
<option value="package-info" />
<option value="Class" />
</list>
</option>
......@@ -107,11 +107,11 @@
<recent name="com.pattern.demo" />
</key>
<key name="CopyClassDialog.RECENTS_KEY">
<recent name="com.pattern.TemplatePattern.materials.po" />
<recent name="com.pattern.SingletonPattern.materials" />
<recent name="com.pattern.FactoryPattern.AbstractFactory.materials.factory" />
<recent name="com.pattern.FactoryPattern.FunctionFactory.materials.factory" />
<recent name="com.pattern.FactoryPattern.FunctionFactory.materials.po" />
<recent name="com.pattern.FactoryPattern.AbstractFactory.materials" />
</key>
</component>
<component name="RunManager" selected="Application.PatternApplication">
......@@ -153,7 +153,7 @@
<workItem from="1634091679401" duration="1323000" />
<workItem from="1634093719115" duration="14778000" />
<workItem from="1634115899707" duration="377000" />
<workItem from="1634180031509" duration="574000" />
<workItem from="1634180031509" duration="1602000" />
</task>
<task id="LOCAL-00001" summary="增加策略模式案例&#10;Signed-off-by: chenjianqiang &lt;wushanxi@gmail.com&gt;">
<created>1634096220780</created>
......
package com.pattern;
import com.pattern.SingletonPattern.SingleMain;
import com.pattern.TemplatePattern.materials.TemplateMain;
/**
* @author lx
......@@ -23,7 +23,10 @@ public class PatternApplication {
//new AbstractFactoryMain().main();
//单例模式
new SingleMain().main();
//new SingleMain().main();
//模板模式
new TemplateMain().main();
}
}
package com.pattern.TemplatePattern.materials;
import com.pattern.TemplatePattern.materials.po.MhtScale;
import com.pattern.TemplatePattern.materials.po.Scale;
import com.pattern.TemplatePattern.materials.po.Scl90Scale;
/**
* @author lx
* @date 2021/10/14 11:17
**/
public class TemplateMain {
public void main() {
Scale scale = new Scl90Scale();
scale.createScale();
scale = new MhtScale();
scale.createScale();
}
}
package com.pattern.TemplatePattern.materials.po;
/**
* @author lx
* @date 2021/10/14 11:13
**/
public class MhtScale extends Scale{
/**
* 部分1
*
* @return 部分1内容
*/
@Override
public String partOne() {
return "MhtScale 1";
}
/**
* 部分2
*
* @return 部分2内容
*/
@Override
public String partTwo() {
return "MhtScale 2";
}
}
package com.pattern.TemplatePattern.materials.po;
/**
* 模板
*
* @author lx
* @date 2021/10/14 11:11
**/
public abstract class Scale {
/**
* 部分1
*
* @return 部分1内容
*/
public abstract String partOne();
/**
* 部分2
*
* @return 部分2内容
*/
public abstract String partTwo();
public void createScale(){
System.out.println("正在制作:");
System.out.println(partOne());
System.out.println(partTwo());
}
}
package com.pattern.TemplatePattern.materials.po;
/**
* @author lx
* @date 2021/10/14 11:13
**/
public class Scl90Scale extends Scale{
/**
* 部分1
*
* @return 部分1内容
*/
@Override
public String partOne() {
return "Scl90Scale 1";
}
/**
* 部分2
*
* @return 部分2内容
*/
@Override
public String partTwo() {
return "Scl90Scale 2";
}
}
/**
* 模板模式
* 一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。
* 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
*/
package com.pattern.TemplatePattern;
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册