【发布时间】:2015-11-09 09:30:03
【问题描述】:
对于 iOS 应用程序,我的一位朋友想到了一种架构,用于处理现有的 3 层可变数据集。我们知道应该如何在 Java 中实现它,但不确定在 Swift 中是否推荐这样的方法。当然,在 Swift 中我们必须使用协议。
你们中的任何人都可以就我们如何使用 Swift 正确实现以下 Java 架构提供建议吗?
提前感谢您的想法!
Java 示例:
确定使用方法的通用接口:
public interface AbstractDataMapper<T> {
public void create(T);
public T read(string);
public void update(T);
public void delete(T);
}
一些实现接口并传递正确对象的抽象映射器类:
public abstract class AbstractClientMapper implements AbstractDataMapper<Client>{}
public abstract class AbstractProductMapper implements AbstractDataMapper<Product>{}
public abstract class AbstractOrderMapper implements AbstractDataMapper<Order>{}
使用接口方法的自定义实现扩展映射器的一些类。
public class MyClientMapper extends AbstractClientMapper {
//override methods from interface
}
public class MyProductMapper extends AbstractProductMapper {
//override methods from interface
}
public class MyOrderMapper extends AbstractOrderMapper {
//override methods from interface
}
【问题讨论】:
-
使用默认协议扩展和泛型,因此可以在“AbstractDataMapper”扩展中添加登录名,这样您就不必覆盖每个映射器中的方法,但我不知道您的客户、产品和订单是否结构/类有一些重要的区别。