基本的业务逻辑的编写并不是难事
基本的业务逻辑的编写并不是难事,作为一个合格的程序员能够编写出易扩展,可维护,高内聚,低耦合的代码才是真正的能力。所以从今天开始会陆陆续续的研究一下设计模式。设计模式并不是针对编程语言,而是考察的编程的思想。
描述
--
优点
--
情景再现
分类
--
代码实现
这里我们就实现简单工厂模式的代码,其他两种的模式知识在简单工厂模式的基础上进行工厂类的强化
服装抽象类(Clothes)
package zhangxinhua.JavaDesignDetails.工厂模式.features;
public abstract class Clothes
{
//袖口的数量
private int wristband=2;
//领口的数量
private int neckline=1;
//穿衣方式
public void hold()
{
System.out.println("我的穿衣方式是从领口");
}
public int getWristband()
{
return wristband;
}
public void setWristband(int wristband)
{
this.wristband = wristband;
}
public int getNeckline()
{
return neckline;
}
public void setNeckline(int neckline)
{
this.neckline = neckline;
}
}
具体服装类一(AutumnCloth)
package zhangxinhua.JavaDesignDetails.工厂模式.special;
import zhangxinhua.JavaDesignDetails.工厂模式.features.Clothes;
public class AutumnCloth extends Clothes
{
@Override
public void hold()
{
System.out.println("我是秋装,我要倒着穿");
}
}
具体服装类二(SpringCloth)
package zhangxinhua.JavaDesignDetails.工厂模式.special;
import zhangxinhua.JavaDesignDetails.工厂模式.features.Clothes;
public class SpringCloth extends Clothes
{
@Override
public void hold()
{
System.out.println("我是春装,我要从领口穿衣");
}
}
具体服装类三(SummerCloth)
package zhangxinhua.JavaDesignDetails.工厂模式.special;
import zhangxinhua.JavaDesignDetails.工厂模式.features.Clothes;
public class SummerCloth extends Clothes
{
@Override
public void hold()
{
System.out.println("我是夏装,我要从怀口穿");
}
}
工厂类(Clothfactory)
package zhangxinhua.JavaDesignDetails.工厂模式.简单工厂模式.factory;
import zhangxinhua.JavaDesignDetails.工厂模式.features.Clothes;
import zhangxinhua.JavaDesignDetails.工厂模式.special.AutumnCloth;
import zhangxinhua.JavaDesignDetails.工厂模式.special.SpringCloth;
import zhangxinhua.JavaDesignDetails.工厂模式.special.SummerCloth;
public class ClothFactory
{
public static Clothes createClothes(String type) throws Exception
{
Clothes clothes=null;
switch (type)
{
case "spring":
clothes=new SpringCloth();
break;
case "summer":
clothes=new SummerCloth();
break;
case "autumn":
clothes=new AutumnCloth();
break;
default:
throw new Exception("目前不支持你指定的类型");
}
return clothes;
}
}
客户端调用(client)
package zhangxinhua.JavaDesignDetails.工厂模式.简单工厂模式.client;
import zhangxinhua.JavaDesignDetails.工厂模式.features.Clothes;
import zhangxinhua.JavaDesignDetails.工厂模式.简单工厂模式.factory.ClothFactory;
public class client
{
public static void main(String[] args) throws Exception
{
System.out.println("工厂你给我一套春装");
Clothes spring = ClothFactory.createClothes("spring");
spring.hold();
System.out.println("********************");
System.out.println("工厂你给我一套秋装");
Clothes autum = ClothFactory.createClothes("autumn");
autum.hold();
System.out.println("********************");
System.out.println("工厂你给我一套夏装");
Clothes summer = ClothFactory.createClothes("summer");
summer.hold();
System.out.println("********************");
}
}
总结
--
我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。