您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
javase第二季学习笔记-接口应用与策略模式
发布时间:2017-07-10 15:19:22编辑:雪饮阅读()
策略模式,定义了一系列算法,将每一种算法封装起来并可以相互替换使用,策略模式让算法独立于使用它的客户应用而独立变化。
oo设计原则:
面向接口编程(面向抽象编程)
封装变化
多用组合,少用继承
import java.util.Random;
public class NewKeywordDemo
{
public static void main(String[] args){
//从一个类中实例化出一个对象
Person p=new Person("小白");
System.out.println("--前--");
//new BeforeGongPerson()是接口实例化出的一个对象
//通过setIsay将p这个实例的isay属性值更换为new BeforeGongPerson()这个对象
p.setIsay(new BeforeGongPerson());
//通过say这个方法将p的isay属性(此时已经是对象new BeforeGongPerson()这个了)的say方法调出
p.say();
System.out.println("--后--");
p.setIsay(new AfterGongPerson());
p.say();
}
}
interface Isay
{
//把该方法从类中单独抽象出来
public void say();
}
class BeforeGongPerson implements Isay
{
public void say(){
System.out.println("man");
}
}
class AfterGongPerson implements Isay
{
public void say(){
System.out.println("women");
}
}
class Person
{
private String name;
//把可变的行为抽象出来,定义成接口,并提供不同的实现
private Isay isay;//把接口作为类中的一个属性
public void setIsay(Isay isay){
this.isay=isay;
}
public Person(String name){
this.name=name;
}
//这个方法的实现是变化的
public void say(){
isay.say();
}
}
/*
class BeforeGongPerson extends Person
{
public person(String name){
super(name);
}
public void say(){
System.out.println("man");
}
}
class AfterGongPerson extends Person
{
public person(String name){
super(name);
}
public void say(){
System.out.println("women");
}
}
*/
关键字词:javase,接口应用与策略模式
下一篇:javase第二季学习笔记