标签: factory

C# - 面试的程序员挑战 - 对界面和模式的编程

抛出Jr.和Mid级开发人员的一个很好的简单问题,如果有机会编程到接口(如简单的工厂模式),他们是否会这样做?

.net c# design-patterns factory

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

注入工厂 - 如何以及为什么?

在代码审查中,出现了以下评论:"我认为,您实际上是指将工厂注入实例,以便您可以在需要时重新启动工厂." 并且"重要提示:工厂不应该是静态的,而应该注入."

Test.java:

Foo foo = FooFactory.get(argument);
Run Code Online (Sandbox Code Playgroud)

FooFactory.java:

public final class FooFactory {
    public static Foo get(String argument) {
        return new Foo();
    }
}
Run Code Online (Sandbox Code Playgroud)

我应该怎么做呢?"重新绑定"在评论者的第一条评论中意味着什么?

java factory factory-pattern

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

Guice AssistedInject不会注入工厂

我正在尝试使用Guice 3.0 AssistedInject,它不会实例化工厂.

SSCCE代码:

家长班

public class ParentClass() {
  @Inject private MyFactory myFactory;
  private final Foo foo;
  private final Bar bar;
  public ParentClass() {
    if(myFactory == null) System.err.println("Error: I should have injected by now!");
    foo = myFactory.create(new Map<String, Object>());
    // etc.
  }
}
Run Code Online (Sandbox Code Playgroud)

工厂界面

public interface MyFactory {
  Foo create(Map<String, Object> mapA);
  Bar create(Map<String, Object> mapB, Map<String, Object> mapC);
}
Run Code Online (Sandbox Code Playgroud)

public class ParentModule extends AbstractModule {
  @Override
  protected void configure() {
    install(new FactoryModuleBuilder()
        .implement(Foo.class, FooImpl.class)
        .implement(Bar.class, BarImpl.class)
        .build(MyFactory.class)); …
Run Code Online (Sandbox Code Playgroud)

java factory guice nullpointerexception assisted-inject

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

什么是jQuery中的工厂函数?

在一篇文章中我读到了jQuery中的工厂函数,但我在互联网上找不到任何相关内容.他们是什么,他们做了什么?

html javascript jquery factory function

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

将AngularJS API服务中的值返回给控制器

如果我有一个看起来像这样的服务:

app.factory('User', function($http, User) {
    var User = function(data) {
        angular.extend(this, data);
    };
    User.prototype.create = function() {
        var user = this;

        return $http.post(api, user.getProperties()).success(function(response) {
            user.uid = response.data.uid;
        }).error(function(response) {

        });
    };

    User.get = function(id) {
        return $http.get(url).success(function(response) {
            return new User(response.data);
        });
    };

    return User;
});
Run Code Online (Sandbox Code Playgroud)

如何在控制器中获取Userget()函数中创建的内容?

目前我所拥有的是:

app.controller('UserCtrl', function($scope, User) {
    $scope.user = null;

    User.get($routeParams.rid).success(function(u) {
        $scope.user = new User(u.data);
    });
});
Run Code Online (Sandbox Code Playgroud)

问题在于UserCtrl获得api响应,而不是从success()工厂返回的值.我更喜欢在工厂制作新用户,而不是将api响应传递给控制器​​.

javascript api service factory angularjs

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

Scala对象onload

我想实施一个工厂.在我的应用程序中只有一个这个工厂的实例.我的工厂需要在创建第一个MyObject之前做一些准备,然后才开始.有没有更好的方法来做到这一点

object MyObjectFactory {
    private var isApplied:Boolean = false
    def apply() = {
        if(!isApplied) {
            isApplied = true;
            onLoad
        }
        //do something
        new MyObject
    }
    def onLoad {
        //prepare environment
    }
}
Run Code Online (Sandbox Code Playgroud)

design-patterns factory scala object

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

如何从工厂方法返回unique_ptr?

我有一些英雄课程,从抽象类Warrior扩展:

enum Warrior_ID { Infantryman_ID=0, Archer_ID, Horseman_ID };

class Warrior
{
  public:
    virtual void info() = 0;
    virtual ~Warrior() { }
    static unique_ptr<Warrior> createWarrior( Warrior_ID id );
};

class Infantryman: public Warrior
{
  public:
    void info()
    {
      cout << "Infantryman" << endl;
    }
};

class Archer: public Warrior
{
  public:
    void info()
    {
      cout << "Archer" << endl;
    }
};

class Horseman: public Warrior
{
  public:
    void info()
    {
      cout << "Horseman" << endl;
    }
};
Run Code Online (Sandbox Code Playgroud)

这是我的工厂方法,它返回特定的字符:

unique_ptr<Warrior> Warrior::createWarrior( Warrior_ID …
Run Code Online (Sandbox Code Playgroud)

c++ factory

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

{closure}()必须是laravel工厂种子上的Faker \ Generator \ Generator的实例

当我使用php artisan db:seed时出现错误?在UserFactory.php第27行中:

Type error: Argument 1 passed to
Illuminate\Database\Eloquent\Factory::{closure}() must be an instance
of Faker\Generator\Generator, instance of Faker\Generator given
Run Code Online (Sandbox Code Playgroud)

Userfactory.php 使用Faker \ Generator作为Faker;

(这是第27行)

$factory->define(App\Models\Admin::class, function (Faker\Generator $faker) {
    static $password;

        return [
            'name' => $faker->name,
            'email' => $faker->safeEmail,
            'password' => $password ?: $password = bcrypt('secret'),
            'remember_token' => str_random(10),
        ];
    });
Run Code Online (Sandbox Code Playgroud)

AdminsTableSeeder.php

public function run()
{
    factory('App\Models\Admin',3)->create([
        'password' => bcrypt('123456')
        ]);
}
Run Code Online (Sandbox Code Playgroud)

DatabaseSeeder.php

public function run()
{
    // $this->call(UsersTableSeeder::class);
    $this->call(AdminsTableSeeder::class);
}
Run Code Online (Sandbox Code Playgroud)

我不知道怎么回事。

factory laravel laravel-seeding

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

多态性是否适用于值?或者通过(base-)value返回时使用派生类的move构造函数

我建立某种工厂方法返回一个DerivedClassBaseClass下列方式:

BaseClass Factory() 
{
    return DerivedClass();
}
Run Code Online (Sandbox Code Playgroud)

是的,BaseClass当我调用该方法时,将使用的move构造函数:

BaseClass object = Factory();
Run Code Online (Sandbox Code Playgroud)

由于我无法制作的move构造函数BaseClass virtual,是否有其他方法可以强制采用的move构造函数DerivedClass

Edit1:其他信息-我已经考虑过指针。但问题是,我想将工厂函数导出到DLL中,并且希望对用户来说尽可能地容易。标准指针可能会导致内存泄漏,另一方面,并​​不是每个人都对智能指针熟悉。

Edit2:据我了解,真正的问题是:多态性是否也可以按值返回?
答案是否定的。

c++ virtual factory move

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

静态工厂是否适用于C#?

我正在阅读有关静态工厂方法的信息。静态工厂方法编码技术仅适用于Java,还是可以适用于C#.Net?似乎更像是Java。

https://dzone.com/articles/constructors-or-static-factory-methods

class Color {
    private final int hex;
    static Color makeFromRGB(String rgb) {
        return new Color(Integer.parseInt(rgb, 16));
    }
    static Color makeFromPalette(int red, int green, int blue) {
        return new Color(red << 16 + green << 8 + blue);
    }
    static Color makeFromHex(int h) {
        return new Color(h);
    }
    private Color(int h) {
        return new Color(h);
    }
}
Run Code Online (Sandbox Code Playgroud)

c# java factory .net-core .net-core-2.0

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