标签: creation

如何创建一个对象,其创建属性隐式指定派生类?

我正在寻找以下模式.(我在Perl工作,但我不认为语言特别重要).

父母班Foo,儿童Bar,Baz,Bazza.

构造Foo的方法之一是解析字符串,该字符串的一部分将隐式指定要创建的类.因此,例如,如果它开始'http:'那么它是一个Bar,但如果它没有,但它包含'[Date]',那么Baz喜欢它,依此类推.

现在,如果Foo知道它的所有子节点,以及什么字符串是Bar,什么是Baz等,它可以调用适当的构造函数.但基类不应该对其子女有任何了解.

我想要的是Foo的构造函数能够依次尝试它的孩子,直到其中一个人说"是的,这是我的,我会创造的东西".

我意识到在一般情况下这个问题没有明确定义,因为可能有多个子接受字符串,因此调用它们的顺序很重要:忽略它并假设字符串的特征这样只有一个子类会喜欢这个字符串.

我提出的最好的方法是让子类在初始化时"注册"基类,以便获取构造函数列表,然后循环它们.但是,我有一个更好的方法吗?

示例代码:

package Foo;

my @children;

sub _registerChild
{
  push @children, shift();
}

sub newFromString
{
  my $string = shift;
  foreach (@children) {
    my $object = $_->newFromString(@_) and return $object;
  }
  return undef;
}

package Bar;
our @ISA = ('Foo');

Foo::_registerChild(__PACKAGE__);

sub newFromString
{
  my $string = shift;
  if ($string =~ /^http:/i) {
    return bless(...);
  }
  return undef;
}
Run Code Online (Sandbox Code Playgroud)

perl inheritance constructor design-patterns creation

3
推荐指数
1
解决办法
501
查看次数

目标c动态对象创建

快问你的问题.我希望能够创建一个对象的实例.对象类型基于字符串.

在php中你可以用一个字符串替换类名,但是我怀疑它在Objective c中是那么容易.

NSString * className;
id theObject;
className = @"TestObject";
theObject = [[className alloc] init];
Run Code Online (Sandbox Code Playgroud)

这是对它可能的样子的分解.我想尝试避免使用巨大的案例风格声明.

是否可以使用选择器系统?

有任何想法吗?

干杯

class creation objective-c

3
推荐指数
2
解决办法
5078
查看次数

在python中自动创建多个文件夹

我想创建一个像C:\sample\sample1\hello.py. 它应该自动创建从sampleto的完整路径hello.py,以及它们之间的所有目录。这在 Python 中可能吗?

python file creation

3
推荐指数
1
解决办法
8162
查看次数

jQuery:如何创建元素然后将其包装在另一个现有元素周围?

所以我知道如何使用.wrap,.wrapInner.wrapAll但我想知道如何使用jQuery的1.4中引入了快速创建语法和包装功能在一起.

基本上我希望能够使用

var targetUl = $(this), // would be populated by script
    maxWidth = 1400;    // would be populated by script

$('<div />', {
    'id':'wrap',
    'css': {
        'width': maxWidth,
        'overflow':'hidden'
    }
}).wrapAround(targetUl);
Run Code Online (Sandbox Code Playgroud)

有点像这种.appendTo方法有效,但包装的东西......

可以这样做吗?

谢谢.

jquery element creation wrapper word-wrap

3
推荐指数
1
解决办法
1334
查看次数

Java:将classA的集合转换为classB的集合

给定一个Foo myFoos列表,我需要将它们映射到另一个类的集合,比如Bar.我现在这样做:

List<Bar> myBars = new...
for(Foo f : foos) {
    Bar b = new Bar();
    b.setAProperty(f.getProperty);
    b.setAnotherProp(f.getAnotherProp);
    myBars.add(b);
}
Run Code Online (Sandbox Code Playgroud)

那么,有更简单的方法吗?这很简单,但我想知道是否有任何魔法可以将foos变形为条形而无需手动遍历列表,特别是因为我的输入列表可能很大.
如果没有,你们知道编译器是否做了什么来优化它?我主要担心的是表现.

谢谢!

-
Llappall

java collections class creation

3
推荐指数
1
解决办法
157
查看次数

在注册时创建用户配置文件添加配置文件表单字段以设计注册#new form

我有一个rails 3.1 app with devise:

  • 用户has_one个人资料
  • 个人资料belongs_to用户
  • 推翻了devise registration_controller
  • 自定义注册视图一切正常,注册工作正常

现在我想补充一下:

  • 在注册页面上,我想要从配置文件中添加字段,如名字,姓氏
  • 还没有用户,将在提交表单时创建
  • 我需要使用此名字创建配置文件,最后一个

我该怎么做?我尝试了几个想法,也来自堆栈溢出,但似乎无法让它工作.我尝试嵌套属性,这是不行的方法,这样做会在用户注册时在数据库中创建一个配置文件记录,插入名字和姓氏

我的注册#new view:

= simple_form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f|

    = devise_error_messages!

    = f.input :username,                  :label => 'Username'
    = f.input :email,                     :label => 'Email'
    = f.input :password,                  :label => 'Password'
    = f.input :password_confirmation,     :label => 'Password confirm'

    // start fields for profile
    = f.fields_for :profile do |f|
      = f.label :bod_day
      = f.text_field :bod_day
    // end fields for profile


    = f.button :submit, t(:submit, :scope …
Run Code Online (Sandbox Code Playgroud)

profile ruby-on-rails registration creation devise

3
推荐指数
1
解决办法
2297
查看次数

如何使用jQuery创建嵌套的DIV?

我有这个jquery脚本:

$('#add').click(function(){
    $('<div class="drag" style="left:20px;"/>')
        .text( num++ )
        .appendTo( document.body )
        .css({ 
            top: $( window ).height() - 500 , 
            left:$( window ).width() - 500
        });
});
Run Code Online (Sandbox Code Playgroud)

这将创建: <div class="drag" style="left:20px;"/></div>

我有兴趣创建的是:

<div class="drag" style="left:20px;"/>
    <div class="handle SE">
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

如果我这样做:

...
$('<div class="drag" style="left:20px;"/><div class="handle SE">')
.text( num++ )
...
Run Code Online (Sandbox Code Playgroud)

jquery将创建2个单独的di'vs而不是嵌套.

有任何想法吗?

谢谢

jquery nested creation

3
推荐指数
1
解决办法
6893
查看次数

创建数据框时的R name列

我正在从数据框中获取列并使用它们来创建另一个数据框,但名称不断变得混乱,而不是保留原始名称.我该如何避免这种情况?

> newDigit1 <- data.frame((security_id = rsPred1$security_id))
> head(newDigit1)
  X.security_id...rsPred1.security_id.
1                                    1
2                                    6
3                                    5
4                                    3
5                                    3
6                                    2
Run Code Online (Sandbox Code Playgroud)

它应该是这样的:

> newDigit1 <- data.frame((security_id = rsPred1$security_id))
> head(newDigit1)
                                security_id
1                                    1
2                                    6
3                                    5
4                                    3
5                                    3
6                                    2
Run Code Online (Sandbox Code Playgroud)

r creation dataframe

3
推荐指数
1
解决办法
3393
查看次数

在java中创建一个目录

我正在尝试创建一个目录并将文件复制到它.我实现的代码及其输出如下.问题似乎是不言自明的,但我会明确地告诉那些无法分辨的人.

问题


无论我做什么,我似乎无法创建复制文件所需的目标文件.


get是要复制的文件,是要复制到dest的目录.ERR>为清楚起见,添加了行号和" ".我已经注释了我尝试过的其他文件创建方法,但它们都失败了.

115:  private void copyTo(File get, File dest)
116:  {
117:    try
118:    {
119:      dest = new File((dest.getPath().endsWith(File.separator) ? dest.getPath() : dest.getPath() + File.separator) + get.getName());
120:      
121:      java.io.FileInputStream fis = new java.io.FileInputStream(get);
122:      if (dest.exists())
123:        while(!dest.delete());
124:      dest.mkdir();
125://      dest.createNewFile();
126://      java.io.FileWriter w = new java.io.FileWriter(dest);
127://      w.write("");
128:      System.out.println("Writing \"" + get + "\" to \"" + dest + "\"");
129:ERR>  java.io.FileOutputStream fos = new java.io.FileOutputStream(dest); …
Run Code Online (Sandbox Code Playgroud)

java file creation filenotfoundexception ioexception

2
推荐指数
1
解决办法
9729
查看次数

- LISP - 如何通过脚本创建位图文件?

我是新手,所以请跟我一起软=)

我正在尝试在LISP中开发一个脚本(抱歉,没有其他语言)来创建位图文件.我在不同的网站上关于位图格式,但我关心的是程序本身.

使用LISP,(和perl/awk,我的环境是Linux RHEL5)我只能创建一个带有"常规"ASCII码的文本文件(我的意思是可打印/可显示).

我的问题是关于不可打印的字符.例如,如果我想在十六进制链00 00 00 00中放入位图头,那么相应的ASCII代码是什么?

我怎么能在文件中打印它们?

非常感谢您的帮助和澄清!

最好,

P-CHAN

lisp creation bitmap common-lisp

2
推荐指数
1
解决办法
418
查看次数