标签: abstraction

您将如何隐藏特定的ORM实现:class Project <ActiveRecord :: Base

假设我有一个名为Project的模型类,但不是这样的:

class Project < ActiveRecord::Base
Run Code Online (Sandbox Code Playgroud)

我想写这个:

class Project < ORM
Run Code Online (Sandbox Code Playgroud)

这样我的模型类中就不存在特定的ORM实现.

我如何编写我的ORM类,以便上面的Project类能够作为子类,ActiveRecord::Base但没有专门的子类化?

我会简单地说:

class ORM < ActiveRecord::Base
Run Code Online (Sandbox Code Playgroud)

然后Project将是一个子类,ActiveRecord::Base就像我写的一样:

class Project < ActiveRecord::Base
Run Code Online (Sandbox Code Playgroud)

ruby inheritance abstraction ruby-on-rails

0
推荐指数
1
解决办法
160
查看次数

我应该在哪里放置我想在CakePHP应用程序中抽象的文本?

我正在编写一个CakePHP应用程序,并试图将经常显示(或特别长)的文本保存在我们可以轻松编辑的配置文件中.
我应该把这个文件放在哪里,如何访问它?
当我们需要显示文本以及从能够使用它的其他进程锁定时,我也担心读取此文件的速度权衡.这是我应该担心的问题还是框架处理的问题?

php configuration text abstraction cakephp

0
推荐指数
1
解决办法
72
查看次数

使用泛型函数指针

我有一系列结构.该struct有两个函数指针.数组的每个元素都需要函数指针指向不同的函数,以便可以在不知道特定函数名的情况下调用对应于特定元素的函数.作为函数指针的新手,在我看来,我正在做的事情不会起作用,但我不确定如何正确地做到这一点.还将理解如何调用所指向的函数之一的示例.

以下是我试图引用的函数的原型:

int edit_translate_concise(struct ged *gedp, const union edit_cmd * const cmd);
int edit_translate_add_arg(union edit_cmd * const cmd, struct edit_arg * const arg);
Run Code Online (Sandbox Code Playgroud)

结构和该结构的数组如下:

struct edit_cmd_tab {
    char *name;
    char *opt_global;
    char *usage;
    char *help;
    int (*exec_concise)(struct ged *gedp, const union edit_cmd *const cmd);
    int (*add_arg)(union edit_cmd *const cmd, struct edit_arg *const arg);
};

static const struct edit_cmd_tab edit_cmds[] = {
    ...
    {"translate",       (char *)NULL,
        "[FROM] TO OBJECT ...",
        "[[-n] -k {FROM_OBJECT | FROM_POS}]\n"
            "[-n] [-a | -r] {TO_OBJECT | …
Run Code Online (Sandbox Code Playgroud)

c arrays struct abstraction function-pointers

0
推荐指数
1
解决办法
2972
查看次数

Linqs是".Distinct()"隐隐绰绰

using System.Linq;

var a = new byte?[][,]{
    new byte?[,]{{1}},
    new byte?[,]{{1}},
    new byte?[,]{{2}},
    new byte?[,]{{1, 2, 3}, {4, 5, 6}}};
a = a.Distinct().ToArray();
Run Code Online (Sandbox Code Playgroud)

但是'a'仍然包含重复内容.我这样做了吗?


谢谢.从答案中的信息.

class Nullable_Byte_2D_Array_EqualityComparer : IEqualityComparer<byte?[,]>
{
    public bool Equals(byte?[,] a, byte?[,] b)
    {
        var r = a.GetLength(0) == b.GetLength(0) &&
            a.GetLength(1) == b.GetLength(1);
        if (r)
        {
            var v = new byte?[a.Length];
            byte n = 0;
            foreach (byte? c in a)
            {
                v[n] = c;
                n++;
            }
            n = 0;
            foreach (byte? c in b)
            {
                if …
Run Code Online (Sandbox Code Playgroud)

c# linq collections abstraction filter

0
推荐指数
1
解决办法
233
查看次数

抽象类方法头与接口

我有100个类,它们扩展了一个抽象类.

这些类中的50个将需要具有该方法foo(),该方法在每个类之间变化.

我知道有两种方法可以做到这一点:

Option #1:创建一个单方法interfacefoo(),并且implementinterface在类50.

Option #2:将abstract方法标题添加foo()到父类,并将foo()方法留空50个类.

以下哪项是更好的约定?为什么?或者有没有更好的方式我没有想到?

java abstraction interface conventions

0
推荐指数
1
解决办法
798
查看次数

私有变量比公共变量更安全的真实程度是多少?

Stackoverflow 充斥着关于私有变量的文章.他们中的大多数人都说使用私有变量"更安全".虽然,我从来没有找到一个真正具体和可满足的私有变量实际上使任何更安全的情况,除了可能是用户不能意外地从类外修改私有变量的事实.

那么私有变量比公共变量更安全的真实程度是多少?将变量私有化只是保护代码免受未来的影响,以及同一个项目中的开发人员吗?它是否意味着保护它免受其他使用您的软件作为API的开发人员的影响?私有变量提供的安全网是否会扩展到防止黑客和恶意用户更改代码中非常重要和敏感​​的部分?

java encapsulation abstraction

0
推荐指数
1
解决办法
110
查看次数

如何将PDO用于特定于数据库的功能?

我需要使用MySQL中的特定功能,我不确定其他数据库风格是否可用.例如,

SELECT DATE_SUB(mydate, INTERVAL 5 DAY) AS foo FROM table

使用PDO时,这种情况的最佳做法是什么?

编辑:

我的意思是,我怎样才能确保DATE_SUB在支持PDO的所有DB风格中都能使用?

php mysql sql pdo abstraction

0
推荐指数
1
解决办法
86
查看次数

抽象方法可以有任意数量的类型参数吗?

我有一个抽象类,我想让派生类不仅定义值类型,还要让它们定义它们有多少个值类型。然后我想要求他们为每种类型设置 getter/setter:

public abstract class A<T1, T2, ..., TN>
{
    // Getters
    public abstract T1 GetValue();
    public abstract T2 GetValue();
    ...
    public abstract TN GetValue();
    // Setters
    public abstract void SetValue(T1 newVal);
    public abstract void SetValue(T2 newVal);
    ...
    public abstract void SetValue(TN newVal);
}
Run Code Online (Sandbox Code Playgroud)

然后从 A 派生的类可以拥有任意数量的值,只要它们提供对它们的访问。这在c#中可能吗?或者类似的东西?

c# inheritance abstract-class types abstraction

0
推荐指数
1
解决办法
31
查看次数