当前位置: 首页 > news >正文

织梦cms可以做外贸网站吗沈阳cms建站模板

织梦cms可以做外贸网站吗,沈阳cms建站模板,如何制作微信公众号文章,重庆专门做网站的公司工厂模式注重直接生产一个对象,而建造者模式 注重一个复杂对象是如何组成的(过程),在生产每个组件时,满足单一原则,实现了业务拆分。 设计模式,一定要敲代码理解 组件抽象 public interface …

工厂模式注重直接生产一个对象,而建造者模式 注重一个复杂对象是如何组成的(过程),在生产每个组件时,满足单一原则,实现了业务拆分。
设计模式,一定要敲代码理解
在这里插入图片描述

组件抽象

public interface Icomponent {String position(); //材料分类 :地板 屋顶 门 窗String type(); //具体材料 如 木窗 ,水泥屋顶BigDecimal price(); //每平方米的价格}

组件实现(部分展示)

  1. 平开窗
/*** @author ggbond* @date 2024年04月02日 09:37* 平开窗*/
public class CasementWindow implements Icomponent {@Overridepublic String position() {return "窗户";}@Overridepublic String type() {return "平开窗";}@Overridepublic BigDecimal price() {return new BigDecimal(120);}}
  1. 推拉窗
/*** @author ggbond* @date 2024年04月02日 09:37* 推拉窗*/
public class SlidingWindow implements Icomponent {@Overridepublic String position() {return "窗户";}@Overridepublic String type() {return "旋转窗";}@Overridepublic BigDecimal price() {return new BigDecimal(80);}
}
  1. 瓦片屋顶
/*** @author ggbond* @date 2024年04月02日 09:36* 瓦片屋顶*/
public class TileRoof implements Icomponent {@Overridepublic String position() {return "屋顶";}@Overridepublic String type() {return "瓦片屋顶";}@Overridepublic BigDecimal price() {return new BigDecimal(60);}
}

组件聚合抽象(需建造的对象)

public interface Ihouse {Ihouse addDoor(Icomponent door);Ihouse addFloor(Icomponent floor);Ihouse addWindow(Icomponent window);Ihouse addRoof(Icomponent roof);String getInfo();
}

组件聚合实体

public class House implements  Ihouse{private HashMap<String,Icomponent> map;private  String name;private  BigDecimal area;private BigDecimal prize=BigDecimal.ZERO;private House(){};public House(float area,  String name){map=new HashMap<>();this.area=new BigDecimal(area);this.name=name;}@Overridepublic Ihouse addDoor(Icomponent door) {map.put("door",door);prize=prize.add(door.price());return this;}@Overridepublic Ihouse addFloor(Icomponent floor) {map.put("floor", floor);prize=prize.add(area.multiply(floor.price()));return this;}@Overridepublic Ihouse addWindow(Icomponent window) {map.put("window", window);prize=prize.add(area.multiply(window.price()));return this;}@Overridepublic Ihouse addRoof(Icomponent roof) {map.put("roof", roof);prize=prize.add(area.multiply(roof.price()));return this;}@Overridepublic String getInfo(){StringBuilder info=new StringBuilder("房子名称:"+name+"\r\n"+"装修面积:"+area+"\r\n"+"装修材料如下:"+"\r\n"+map.get("door").type()+"\r\n"+map.get("window").type()+"\r\n"+map.get("roof").type()+"\r\n"+map.get("floor").type()+"\r\n"+"装修费用共计:"+prize+" 元"+"\r\n"+"---------------------------"+"\r\n");return  info.toString();}
}

建造者

负责封装实体对象

public class Builder {public Ihouse type1(float area,String name){return new House(area,name).addDoor(new WoodDoor()).addFloor(new WoodFloor()).addWindow(new SlidingWindow()).addRoof(new TileRoof());}public Ihouse type2(float area,String name){return new House(area,name).addDoor(new GlassDoor()).addFloor(new MarbleFloor()).addWindow(new CasementWindow()).addRoof(new CementRoof());}
}

测试

public class Main {public static void main(String[] args) {Builder builder=new Builder();System.out.println(builder.type1(60f,"ggbond_house1").getInfo());System.out.println(builder.type2(120f,"ggbond_house2").getInfo());}
}

结果展示

房子名称:ggbond_house1
装修面积:60
装修材料如下:
木制门
旋转窗
瓦片屋顶
木质地板
装修费用共计:12460---------------------------房子名称:ggbond_house2
装修面积:120
装修材料如下:
玻璃门
平开窗
水泥屋顶
大理石地砖
装修费用共计:22930---------------------------

总结

建造模式把一个复杂的对象或者流程进行逐个设计,使得各个部分职责划分明确。并对内部进行封装,结合上述代码使用者可以不知道house消息,即可通过builder进行生产不同对象实体。

代码下载

代码下载

http://www.ds6.com.cn/news/104574.html

相关文章:

  • 吉首公司网站找谁做北京优化核酸检测
  • 帮客户做插边球网站怎么查询百度收录情况
  • 个人网站建设咨询电话链接提交工具
  • 现在东莞哪里疫情严重高级seo
  • asp.net网站建设项目实战 董义革seo基础知识培训视频
  • 锡林郭勒盟网站建设国际十大市场营销公司
  • 如何做关于橱柜网站网站百度权重
  • 网站模板之家免费模板网络营销推广方案整合
  • wordpress 中英文网站模板百度云网盘资源搜索引擎
  • 网站关键词布局实操安全又舒适的避孕方法有哪些
  • 辅导班如何做网站做个公司网站大概多少钱
  • 网站访客跟踪网络的推广方式有哪些
  • 重庆网站制作机构网站优化关键词价格
  • 分类信息网站开发绍兴seo推广
  • c语言可以做网站吗腾讯企业qq官网
  • 哈尔滨网站开发建设公司电话公司品牌营销策划
  • 蜜雪冰城网站建设策划方案seo外链工具
  • 网站开发详细设计永久观看不收费的直播
  • 用python做网站的步骤网页设计模板网站
  • 佛山做营销型网站建设佛山疫情最新情况
  • a5做网站太原今日头条
  • 中国优秀网站建设官网买卖网交易平台
  • 汕头站扩建官方进一步优化
  • 杭州网站推广营销服务品牌运营中心
  • 汉阳做网站多少钱百度一下你就知道官网网页版
  • 如何在国税网站做票种核定可以免费发布广告的平台有哪些
  • 太平洋在线企业建站系统网站推广计划方法
  • 合肥城乡建设委员会网站店铺推广方式有哪些
  • wordpress子主题引用js淘宝标题优化网站
  • 哈尔滨网站建设培训品牌营销策划有限公司