本文主要是介绍【Design Patterns】-----工厂三姐妹之简单工厂,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
工厂三姐妹之简单工厂
目录
简单工厂的实践...
简单工厂定义...
Java 版代码...
User:/*.
SQLserverUser:...
Test (Client )
结果:...
.Net 版代码...
实体:...
方法:...
客户端:...
显示结果:...
小结:...
简单工厂定义(Simple FactoryPattern):
通过专门定义一个类来负责创建其他类的实例,被创建的实例通常具有共同的父类。
User:
/** entity level* */public classUser {public int id;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String name;
}
/** entity level* */public classUser {public int id;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String name;
}
SQLserverUser:
/** the method what we use* */public classSqlserverUser {public voidInsert(User user){System.out.println("Add a number Insert to User_table");}public voidGetUser(int id){System.out.println("Get a number from User_table");return;//在java中返回空,只return就行,但是.net 中是 return null.}
}
Test (Client )
public classTest {public static voidmain (String[] args){Useruser =new User();SqlserverUsersu=new SqlserverUser();su.Insert(user);su.GetUser(1);}
}
结果:
.Net 版代码
实体:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;namespaceAbstract_Factory1._0
{classUser{privateintid;publicint Id{get {returnid; }set {id=value;}}privatestring name;publicstringName{get {returnname; }set {name=value;}}}
}
方法:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;namespaceAbstract_Factory1._0
{classSqlserverUser{publicvoidInsert(Useruser){Console.WriteLine("在SQL Server 中给User表添加一条记录");}publicUserGetUser(intid){Console.WriteLine("在SQL server 中根据ID得到User表一条记录");returnnull;}}
}
客户端:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;namespaceAbstract_Factory1._0
{classProgram{staticvoidMain(string[]args){Useruser=newUser();SqlserverUsersu=newSqlserverUser();//插入用户su.Insert(user);//得到ID为1 的用户su.GetUser(1);Console.Read();}}
}
显示结果:
小结:
1, 工厂类负责创建的对象比较少
2, 客户只知道传人工厂类的参数,对于如何创建对象(逻辑)不关心;
3, 由于简单工厂很容易违反高内聚责任分配原则,因此一般只是在很简单的情况下使用。
这篇关于【Design Patterns】-----工厂三姐妹之简单工厂的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!