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

做电商引流软文网站故事app怎么制作

做电商引流软文网站,故事app怎么制作,查网址是否安全,南山最专业的网站建设使用抽象文档模式的类型安全视图 您如何组织对象#xff1f; 在本文中#xff0c;我将介绍一种模式#xff0c;该模式以无类型的方式在您的系统中组织所谓的名词类#xff0c;然后使用特征公开数据的类型化视图。 这使得只需少量的牺牲就可以在Java之类的语言中获得JavaScr… 使用抽象文档模式的类型安全视图 您如何组织对象 在本文中我将介绍一种模式该模式以无类型的方式在您的系统中组织所谓的名词类然后使用特征公开数据的类型化视图。 这使得只需少量的牺牲就可以在Java之类的语言中获得JavaScript之类的非类型语言的灵活性。 用户在用户界面中所做的每种配置表单中的每种选择都需要存储在可从应用程序访问的某个位置。 它需要以一种可以操作的格式存储。 教科书中的示例是为系统中每个名词定义类并为它们所包含的字段使用getter和setter方法。 做教科书模型的一种更为严肃的方法是为每个名词定义企业bean并使用注释对其进行处理。 它可能看起来像这样 这些静态模型有局限性。 随着系统的发展您将需要添加更多字段更改组件之间的关系并可能出于不同目的创建其他实现。 你知道这个故事。 突然每个名词的静态成分不再那么有趣了。 因此您开始研究其他开发人员。 他们如何解决这个问题 在JavaScript等非类型化语言中您可以使用地图来解决此问题。 有关组件的信息可以存储为键值对。 如果一个子系统需要存储一个附加字段则可以这样做而无需事先定义该字段。 var myCar {model: Tesla, color: Black}; myCar.price 80000; // A new field is defined on-the-fly 它加快了发展速度但同时付出了巨大的代价。 您会失去类型安全性 每个真正的Java开发人员的噩梦。 由于您没有使用组件的结构因此测试和维护也更加困难。 在Speedment进行的最近一次重构中我们面对静态设计与动态设计的这些问题并提出了一个称为Abstract Document Pattern的解决方案。 抽象文件模式 此模型中的文档类似于JavaScript中的Map。 它包含许多未指定值类型的键值对。 在这个未类型化的抽象文档之上是许多Traits 它们表示一个类的特定属性。 特征已使用类型化的方法来检索它们表示的特定值。 名词类只是原始文档接口的抽象基础实现之上的不同特征的并集。 因为一个类可以从多个接口继承所以可以这样做。 实作 让我们看一下这些组件的来源。 Document.java public interface Document {Object put(String key, Object value);Object get(String key);T StreamT children(String key,FunctionMapString, Object, T constructor); } BaseDocument.java public abstract class BaseDocument implements Document {private final MapString, Object entries;protected BaseDocument(MapString, Object entries) {this.entries requireNonNull(entries);}Overridepublic final Object put(String key, Object value) {return entries.put(key, value);}Overridepublic final Object get(String key) {return entries.get(key);}Overridepublic final T StreamT children(String key,FunctionMapString, Object, T constructor) {final ListMapString, Object children (ListMapString, Object) get(key);return children null? Stream.empty(): children.stream().map(constructor);} } HasPrice.java public interface HasPrice extends Document {final String PRICE price;default OptionalInt getPrice() {// Use method get() inherited from Documentfinal Number num (Number) get(PRICE); return num null? OptionalInt.empty(): OptionalInt.of(num.intValue());} } 在这里我们只公开获取价格的吸气剂但是您当然可以用相同的方法实现一个吸气剂。 这些值始终可以通过put方法进行修改但是您面临着将值设置为不同于getter期望的类型的风险。 汽车.java public final class Car extends BaseDocumentimplements HasColor, HasModel, HasPrice {public Car(MapString, Object entries) {super(entries);}} 如您所见最终的名词类很少但是您仍然可以使用类型化的吸气剂访问颜色型号和价格字段。 向组件添加新值就像将其放入地图一样容易但是除非它是接口的一部分否则它不会公开。 该模型还适用于分层组件。 让我们看一下HasWheels特性的外观。 HasWheels.java public interface HasWheels extends Document {final String WHEELS wheels;StreamWheel getWheels() {return children(WHEELS, Wheel::new);} } 就是这么简单 我们利用以下事实在Java 8中您可以将对象的构造函数作为方法引用来引用。 在这种情况下Wheel类的构造函数仅采用一个参数Map StringObject。 这意味着我们可以将其称为Function Map StringObjectWheel。 结论 这种模式既有优点也有缺点。 随着系统的扩展文档结构易于扩展和构建。 不同的子系统可以通过特征接口公开不同的数据。 根据使用哪个构造函数生成视图可以将同一地图视为不同类型。 另一个优势是整个对象层次结构都存在于一个Map中这意味着可以使用现有的库例如Google的gson工具 轻松进行序列化和反序列化。 如果希望数据是不可变的则只需将内部映射包装在构造函数中的unmodifiableMap中即可保护整个层次结构。 一个缺点是它不如常规的bean结构安全。 可以通过多个接口从多个位置修改组件这可能会使代码的可测试性降低。 因此在大规模实施此模式之前应权衡利弊。 如果要查看实际的抽象文档模式示例请查看Speedment项目的源代码其中该项目管理有关用户数据库的所有元数据。 翻译自: https://www.javacodegeeks.com/2016/02/the-best-of-both-worlds.html
http://www.zqtcl.cn/news/193776/

相关文章:

  • php网站后台密码忘记做电子商务网站 语言
  • 网站建设策划师怎样进入国外网站
  • 建设银行商城网站浙江建站管理系统价格
  • 我想做个网站怎么做的常用的网络营销方法及效果
  • 南通专业做网站南宁网站建设mxfsem
  • 阿里巴巴电子商务网站建设目的网站专题素材
  • 浙江虎霸建设机械有限公司网站哪个网站做简历好
  • 网站做电商资质吗网站开发作品
  • 大型彩灯制作公司临清聊城网站优化
  • 网站建设灬金手指下拉十五网络运维工程师简历怎么写
  • 黄岛建设局网站动漫采集WordPress
  • 做网站现在挣钱吗wordpress 网址导航主题
  • 外贸网站什么采集wordpress主题更换logo
  • 唐山开发网站的公司长沙营销型网站设计
  • 数据库策略网站推广的有效方法有美辰网站建设
  • c 网站开发构想做网站的点子
  • 个人网站模板下载提供网站建设备案公司
  • 做网站需要会写代码6山东东营
  • 兼职刷客在哪个网站做网站搬家数据库配置
  • 做搬运的话哪个网站好网站模板建站
  • 建设个人信息网站wordpress 用户权限
  • 网站不显示域名解析错误怎么办公益网站设计
  • 怎么上传网站图片的链接手表网站排行榜
  • 网站推广方法100种百度排名规则
  • 上海专业网站建设公司站霸网络萝岗区网站建设推广
  • 做微商网站的公司永久免费crm管理系统
  • 网站开发的环境专业的建设网站
  • 公司网站建设知识注册网站备案
  • 营销型网站建设申请域名在域名做网站
  • 电商网站设计公司立找亿企邦山东德州网站建设哪家最好