如何通过两层分离方法的可见性?

时间:2010-01-04 00:59:36

标签: php oop

我有一个DataMapper类,它有一些私有和公共方法。 DataMapper类本身位于系统层中,因为它是自动生成的代码。用户(开发人员)在域层(或业务逻辑层)中使用DataMapper类。

DataMapper有一些方法只能由框架使用,我不想向用户公开。但是,我不能将这些方法设为私有或受保护,因为框架类必须能够调用这些方法。但用户不应该。

我想到的一个选择是:

1)在方法名称前加一个_下划线,表示它是“私有API”。

2)向方法添加一个名为“key”的参数:整个框架知道它传递这些方法的密钥。该方法评估密钥。如果没问题,则执行该方法,否则抛出异常。

我如何在我的图层中分离这些方法的可见性?我必须看看接口吗?

2 个答案:

答案 0 :(得分:1)

是的......公共方法的界面将是解决问题的“经典”方式。

答案 1 :(得分:1)

如果用户试图修改内部方法,除非“用户”可能有恶意,或者有可能发生灾难(即某些事情会让其他人搞砸),我真的不会打扰使用“密码”参数 - 无论如何都可以很容易地从源中推断出来。我无法想象这两种情况都会发生。

您是否只能使用某种包装器为外部客户端代码提供所需的功能?