工厂实际模式

工厂模式:(普通工厂模式,多个工厂方法模式,静态工厂方法模式)在面向对象程序设计中,工厂通常是一个用来创建其他对象的对象。工厂模式根据不同的参数来实现不同的分配方案和创建对象。在工厂模式中,我们创建对象时不会暴露创建对象逻辑,并且是通过使用一个共同接口来指向新创建的对象。

1.普通工厂模式:
// 二者共同的接口
public interface Human{
public void eat();
public void sleep();
public void beat();
}

// 创建实现类 Male
public class Male implements Human{
public void eat(){
System.out.println("Male can eat.");
}
public void sleep(){
System.out.println("Male can sleep.");
}
public void beat(){
System.out.println("Male can beat.");
}
}
//创建实现类 Female
public class Female implements Human{
public void eat(){
System.out.println("Female can eat.");
}
public void sleep(){
System.out.println("Female can sleep.");
}
public void beat(){
System.out.println("Female can beat.");
}
}

// 创建普通工厂类
public class HumanFactory{
public Human createHuman(String gender){
if( gender.equals("male") ){
return new Male();
}else if( gender.equals("female")){
return new Female();
}else {
System.out.println("请输入正确的类型!");
return null;
}
}
}

// 工厂测试类
public class FactoryTest {
public static void main(String[] args){
HumanFactory factory = new HumanFactory();
Human male = factory.createHuman("male");
male.eat();
male.sleep();
male.beat();
}
}

2.多个工厂方法模式
// 多个工厂方法
public class HumanFactory{
public Male createMale() {
return new Male();
}
public Female createFemale() {
return new Female();
}
}

// 工厂测试类
public class FactoryTest {
public static void main(String[] args){
HumanFactory factory = new HumanFactory();
Human male = factory.createMale();
Human female = factory.createFemale();
male.eat();
male.sleep();
male.beat();
female.eat();
female.sleep();
female.beat();
}
}

静态工厂方法模式:省去创建工厂实例,直接通过工厂类调用静态方法实现实例化
// 多个工厂方法
public class HumanFactory{
public static Male createMale() {
return new Male();
}
public static Female createFemale() {
return new Female();
}
}

// 工厂测试类
public class FactoryTest {
public static void main(String[] args){
Human male = HumanFactory.createMale();
male.eat();
male.sleep();
male.beat();
}
}

转载于:https://www.cnblogs.com/Jason-MLiu/p/8406553.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
简单工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式,而无需暴露对象的具体类。这种模式隐藏了对象的实例化过程,用户只需要关心如何使用对象,而不是如何创建它们。 在实际使用中,简单工厂通常用于以下几个场景: 1. **产品家族**: 当系统中有多种相关的对象,它们都是同一抽象类型的实例,但是具体的实现类不同。例如,不同的手机品牌可以有不同的屏幕和操作系统,但都属于“手机”这个抽象类别。 2. **避免硬编码**: 避免在代码中直接new出特定类的对象,这有助于提高灵活性,如果需要更换实现类,只需改变工厂的内部逻辑即可,不影响客户端代码。 3. **降低耦合**: 客户端不需要了解产品的具体实现细节,降低了系统的耦合度,使其更易于维护和扩展。 一个简单的例子就是,在Java中,你可以创建一个`PhoneFactory`类,其中包含一系列静态方法,每个方法对应一种手机类型,如`SamsungPhone`, `ApplePhone`, `HuaweiPhone`等。客户端只需调用相应的工厂方法,就得到了相应品牌的手机对象。 ```java public class PhoneFactory { public static SamsungPhone createSamsungPhone() { return new SamsungGalaxy(); } public static ApplePhone createApplePhone() { return new iPhone(); } } // 使用时 Phone phone = PhoneFactory.createSamsungPhone(); // 返回SamsungGalaxy实例 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值