标签: builder

Kohana Query Builder:和or where子句

            ->where('orders.date_paid', 'BETWEEN', array($from, $to))
            ->and_where('orders.status', '=', 'new')
            ->or_where('orders.status', '=', 'delivered')
Run Code Online (Sandbox Code Playgroud)

我想显示date_paid介于$ from和$ to之间的所有行,其中status是new或deliver.

当我添加这个or_where()时,它会忽略BETWEEN $ from和$ to date_paid where子句.

我怎么能这样做?

builder kohana

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

Delphi/Builder/VCL,覆盖形式的WM_PAINT而不会丢失双缓冲?

我正在使用BCB6,但它应该与Delphi相同,如果我只是在我的表单中添加这样的处理程序:

void __fastcall TForm1::WndProc(TMessage &Message)
Run Code Online (Sandbox Code Playgroud)

并处理WM_PAINT,我没有得到TWinControl提供的DoubleBuffered的好处.有没有办法在表单上做一些自定义绘画,尊重DoubleBuffered设置(也就是写入TWinControl创建的内存位图)?

controls.pas中的此函数是DoubleBuffered应用的位置:

procedure WMPaint(var Message: TWMPaint); message WM_PAINT;
Run Code Online (Sandbox Code Playgroud)

它创建一个内存位图,然后再次调用自身.所以当Message.DC为0时我需要一种方法来调用该函数,所以它会创建位图然后我不会再调用它...但是WMPaint不是虚拟的,也不是PaintHandler,所以我我没有看到一种方法来吸引这个.

我知道我可以创建自己的双缓冲,但如果可能的话,我宁愿使用已经存在的东西.我计划将这个设计转移到其他控件上,而不仅仅是我的表格.

delphi vcl builder

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

C# - 使用字符串构建器将标头写入日志文件

这应该是一个非常简单的解决方案,但由于某种原因,我错过了一些东西.我所要做的就是获取我必须编写标题的字符串生成器函数,但由于某种原因它当前不是.

当我尝试将if语句更改为!File.Exists(tempFileName)时,它不会通过我的循环运行.

有什么建议?另外,如果您需要更多信息,请与我们联系.提前致谢.

public static void Open(string tempFileName, string division,
                             int zipFiles, int conversions, int returnedFiles, int totalEmails)
    {
        StreamWriter dailyStats;

        //This is where I am missing something
        //I am passing in the original filename of a log, then adding "-Stats.log"
        //so I can tell the difference between what is the new stats file, and the original log file
        if (File.Exists(tempFileName))
        {
            dailyStats = new StreamWriter(tempFileName + "-Stats.log");

            StringBuilder sb = new StringBuilder();
            sb.Append("Division");
            sb.Append("\t");
            sb.Append("Zip Files");
            sb.Append("\t");
            sb.Append("Conversions");
            sb.Append("\t"); …
Run Code Online (Sandbox Code Playgroud)

c# string logging file builder

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

静态嵌套类线程安全 - java

我在名为"MyClass"的类中有一个静态的"Builder"类.如果我尝试从两个线程同时使用构建器创建两个MyClass实例,它会安全吗?可以将一个线程设置的值分配给另一个线程创建的对象吗?

码:

public class MyClass {
    private int height;
    private int weight;

    private MyClass(Builder builder) {
        height = builder.height;
        weight = builder.weight;
    }

    public static class Builder {
        private int height;
        private int weight;

        public Builder height(int h) {
            height = h;
            return this;
        }

        public Builder weight(int w) {
            weight = w;
            return this;
        }

        public MyClass build() {
            return new MyClass(this);
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

java multithreading builder

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

这些构建器模式之间有什么区别(如果有的话)?

在构建器中声明父类的实例和Field使用该变量初始化每个实例并在构建器中再次单独声明每个变量然后将构建器声明为构造函数的一部分来初始化每个变量之间是否存在差异Field

public class Foo {

    public int i;
    public String s;

    private Foo(Builder builder) {
        i = builder.i;
        s = builder.s;
    }

    public static class Builder {

        private int i;
        private String s;

        public Builder i(int i) {
            this.i = i;
            return this;
        }

        public Builder s(String s) {
            this.s = s;
            return this;
        }

        public Foo build() {
            return new Foo(this);
        }
    }

}
Run Code Online (Sandbox Code Playgroud)
public class Foo {

    public int i;
    public String s;

    public …
Run Code Online (Sandbox Code Playgroud)

java design-patterns builder

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

为什么有人说"Builder Pattern"比使用Fluent接口的Extension方法更好?

在本讨论中(创建流畅的API),响应表明Builder模式比使用Extension方法创建Fluent接口要好.

这可能是什么原因?扩展方法遵循SOLID原则中的"O"......我个人只使用扩展方法来开发Fluent接口,但我想知道是否需要重新考虑这个...

c# extension-methods fluent builder

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

Rails XML构建器无法呈现

我在Rails 4应用程序中的请求的响应主体中呈现XML时遇到问题.在下面的示例中,响应正文为空白.我在模板中放了一个调试器,所以我知道它贯穿它但不会渲染任何东西.

我创建了一个简单的rails应用程序来演示我使用构建器返回xml的问题.任何人都能指出这个例子的(可能是愚蠢的简单)问题吗?

这是控制器,模板和测试:

控制器/ bars_controller.rb

require 'builder'

class BarsController < ApplicationController
  before_action :set_bar, only: [:show]

  # GET /bars/1
  # GET /bars/1.json
  def show
    @xml = Builder::XmlMarkup.new
    render template: 'bars/show.xml.builder', formats: [:xml]
  end

  private
    # Use callbacks to share common setup or constraints between actions.
    def set_bar
      @bar = Bar.find(params[:id])
    end

    # Never trust parameters from the scary internet, only allow the white list through.
    def bar_params
      params.require(:bar).permit(:foo, :bar)
    end
 end
Run Code Online (Sandbox Code Playgroud)

/views/bars/show.xml.builder

@xml.instruct!
@xml.bar do
  @xml.foo(@bar.foo)
  @xml.bar(@bar.bar)
end
Run Code Online (Sandbox Code Playgroud)

/test/controllers/bars_controller_test.rb

 require …
Run Code Online (Sandbox Code Playgroud)

xml ruby-on-rails builder

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

我实现构建器对象有什么缺点?

我想知道,与我在大多数网站上看到的构建器对象实现相比,我的构建器对象的实现是否有缺点.我知道为一个只有2个字段的类实现一个构建器对象实在是太过分了,但这些仅仅是示例,意味着很小.

我的实施:

public class User {

    private String firstname;

    private String lastname;

    public String getFirstname() {
        return firstname;
    }

    public String getLastname() {
        return lastname;
    }

    private User(){}

    public static class Builder{

        private final User user;

        public Builder(){
            user = new User();
        }

        public Builder firstname(String firstname){
            user.firstname = firstname;
            return this;
        }

        public Builder lastname(String lastname){
            user.lastname = lastname;
            return this;
        }

        public User build(){
            return user;
        }   
    }
}
Run Code Online (Sandbox Code Playgroud)

在互联网上找到的构建器对象(example1 example2):

public class User {

    private …
Run Code Online (Sandbox Code Playgroud)

java oop builder

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

是否存在使用Builder模式创建的对象不可变的约定?

根据"设计模式:可重用的面向对象软件的元素"一书,

构建器模式将复杂对象的构造与其表示分开,以便相同的构造过程可以创建不同的表示.

通常,Builder模式通过提供逐步构建对象的方法并提供实际返回最终Object的方法来解决具有大量可选参数和不一致状态的问题.

使用构建器模式,我们将使用构建方法来生成不可变的对象.

我的问题:

我可以在生成对象的类中使用构建器模式保持setter方法,允许改变构建对象的可能性吗?

如果我去制作可变对象,我不应该使用构建器模式?

java constructor design-patterns builder immutability

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

使用Spring服务的Builder类

我想在Spring项目中创建一个构建器类(即实现构建器设计模式的类)。问题是我需要构建器使用一些Spring服务。我显然不希望用户在构造函数中显式提供服务,但是当我尝试@Autowire提供服务时,我得到了Autowired members must be defined in valid Spring bean。我可以@Component用来注释我的构建器,但这会使它成为一个单例,这对于构建器而言是不希望的。如何将服务注入我的构建器类而不使其单身?

要使用本文的示例,可以说我有以下构建器:

BankAccount account = new BankAccount.Builder(1234L)
            .withOwner(25324)
            .atBranch("Springfield")
            .openingBalance(100)
            .atRate(2.5)
            .build();
Run Code Online (Sandbox Code Playgroud)

我想withOwner使用UserService给定的ID号作为参数从数据库中获取实际用户。我将如何向构建器注入UserService?

java spring dependency-injection builder autowired

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