//人类
abstract class Person{
public string name {get;set;}
public abstract void A();
}
//学生类
class Student:Person{
public override void A(){
//执行学生的方法
}
}
//教师类
class Teacher:Person{
public override void A(){
//执行教师的方法
}
}
//工厂类
public static class PersonFactory{
public static Person getPerson(int type){
Person p = null;
if(type==1) p = new Teacher();
else p = new Student();
return p;
}
}
以上代码为手敲版,未进行过编译器检测
工厂模式:利用的是多态,以上只是体现了 父子类的工厂,还有 接口工厂
工厂模式 的方法 返回值是父类(或接口),调此工厂的方法得到一个父类,然后调父类的方法,实现多态,实现思路大概是这样,直观的感觉不到什么优点,要通过项目才能有感觉
(以上写的有所简洁,实际中工厂方法的参数可能不同,道理都是用到里氏替换原则得到父对象)