fluent-interface相关内容
我正在使用 PHP 5,并且听说了面向对象方法中的一个新特性,称为“方法链".究竟是什么?如何实现? 解决方案 其实很简单.您有一系列 mutator 方法,它们都返回原始(或其他)对象.这样,您可以继续在返回的对象上调用方法. str = "";}函数 addA(){$this->str .= "a";返回$这个;}函数 addB(){$this->str .= "b";返回$这个;}
..
我有一列“名称"必须是唯一的.没有外键或类似的东西. EF 6.1 最终支持通过注释创建此类索引.这已经在 SO 上讨论过了.但似乎只能通过类中的注释来完成.如何仅使用 Fluent API 做到这一点? 类似这样的: 公共类 PersonConfiguration : EntityTypeConfiguration;{公共人员配置(){HasKey(p => p.Id);属性(p
..
我有一个具有 char 属性的对象: 公开课产品{公共字符代码{得到;放;}} Entity Framework 似乎无法映射字符(当我从模型对象创建数据库架构时,数据库中缺少此字段).无论如何我可以使用流利的 API 映射字符(例如到字符串)吗?我不想更改模型对象,因为它们是旧共享库的一部分. 解决方案 Char 不是实体框架的有效原始类型 = 实体框架没有映射它.如果您检查 CSD
..
我如何在 PHP 中执行此操作 $myDBClass->users()->limit(5);//输出你限制用户为5$myDBClass->comments()->limit(3);//输出你限制的评论为3 我的意思是嵌套方法或嵌套类(我不知道!)所以当我作为用户的孩子调用 limit 方法时,它会知道我是从“用户"方法 - 或类 - 调用它时,当我从评论中调用 limit 方法 - 或类! -
..
我正在寻找有关 C# 中流畅界面的一些好技巧.我自己只是在学习它,但很想听听我正在阅读的文章之外的其他人的想法.特别是我追求: 什么时候流利太多了? 有流畅的模式吗? C# 中什么使流畅的接口更加流畅(例如扩展方法) 复杂的流畅界面仍然是流畅的界面吗? 重构以获得流畅的界面或重构现有的流畅界面 有没有您曾经合作过或可以推荐的好例子? 如果您可以发布一个提示或想法,或者每个帖子
..
我想知道在 流畅的界面中使用 方法链 在 .When 条件中实现 .When 条件的最佳方法是什么>Builder 对象? 例如,我将如何在以下示例中实现 .WithSkill() 和 .When() 方法: var level = 5;var ninja = NinjaBuilder.CreateNinja().Named("忍者男孩").AtLevel(级别).WithShuriken
..
我会举例说明一个问题.有一个接口流畅的基类: class FluentPerson{私人字符串_FirstName = String.Empty;私人字符串 _LastName = String.Empty;公共 FluentPerson WithFirstName(string firstName){_名字=名字;返回这个;}公共 FluentPerson WithLastName(strin
..
我正在为我的 IoC 类库重写流畅的界面,当我重构一些代码以通过基类共享一些通用功能时,我遇到了一个障碍. 注意:这是我想要做的事情,而不是我必须做的事情.如果我不得不使用不同的语法,我会,但如果有人知道如何让我的代码按照我想要的方式编译,那将是最受欢迎的. 我希望某些扩展方法可用于特定的基类,并且这些方法应该是通用的,具有一个通用类型,与方法的参数相关,但这些方法还应返回与调用它们的
..
我有以下方法: public static TEventInvocatorParameters 直到(这个 TEventInvocatorParameters p,FuncbreakCond)其中 TEventInvocatorParameters : EventInvocatorP
..
我将如何设计 API 来隐藏 AJAX 和 HTTP 请求的异步特性,或者基本上延迟它以提供流畅的界面.展示来自 Twitter 的新 Anywhere API 的示例: //获取@ded 的前 20 个状态,只过滤那些//提及摄影,并将每个渲染成一个 HTML 元素T.User.find('ded').timeline().first(20).filter(filterer).each(fun
..
方法链是我所知道的构建流畅界面的唯一方法. 以下是 C# 中的示例: John john = new JohnBuilder().AddSmartCode("c#").WithfluentInterface(“请").ButHow(“不知道");Assert.IsNotNull(约翰);[测试]public void Should_Assign_Due_Date_With_7DayTerm
..
方法链 是对象方法返回对象本身以便结果被调用另一种方法.像这样: participant.addSchedule(events[1]).addSchedule(events[2]).setStatus('attending').save() 这似乎被认为是一个很好的做法,因为它产生了可读的代码,或“流畅的界面".然而,对我来说,它似乎打破了面向对象本身隐含的对象调用符号 - 结果代码并不表示对
..
我有一个具有 char 属性的对象: 公共类产品{公共字符代码{得到;放;}} Entity Framework 似乎无法映射字符(当我从模型对象创建数据库架构时,数据库中缺少此字段).无论如何我可以使用 fluent API 映射字符(例如到字符串)?我不想更改模型对象,因为它们是遗留共享库的一部分. 解决方案 Char is not valid original type for
..
我正在使用 PHP 5,并且听说了面向对象方法中的一个新功能,称为“方法链".究竟是什么?我该如何实施? 解决方案 其实很简单.您有一系列 mutator 方法,它们都返回原始(或其他)对象.这样,您就可以继续调用返回对象的方法. str = "";}函数 addA(){$this->str .= "a";返回 $this;}函数 addB(){$this->str .= "b";返回
..
我最近观看了关于如何创建流畅的 DSL 的网络广播,我有承认,我不明白人们为什么会使用这种方法(至少对于给定的例子). 网络广播提供了一个图像大小调整类,它允许您使用以下语法(使用 C#)指定输入图像、调整其大小并将其保存到输出文件: Sizer sizer = new Sizer();sizer.FromImage(inputImage).ToLocation(输出图像).ReduceB
..
现有的 C API 如下所示: //数据typedef struct {int 属性;} 小部件;//界面Widget* SetWidth(Widget *const w, int width){//...返回 w;}Widget* SetHeight(Widget *const w, int height){//...返回 w;}Widget* SetTitle(Widget *const w
..
在城堡温莎使用自动注册时,我看到人们在做类似的事情 _container.Register(AllTypes.Pick().FromAssembly(Assembly.GetExecutingAssembly()).WithService.FirstInterface()); 在我的一生中,我无法弄清楚 Pick() 方法的作用,也找不到任何文档.谁能给我解释一下? 解决方案 Pick
..
这个 fluent like 类并不是严格不可变的,因为字段不是最终的,但它是线程安全的,为什么? 我关心的线程安全问题不是竞争条件,而是变量的可见性.我知道有一种使用最终变量和构造函数而不是 clone() + 赋值的解决方法.我只是想知道这个例子是否是一个可行的替代方案. 公共类 IsItSafe 实现 Cloneable {私人 int foo;私人int吧;公共 IsItSafe
..
我们正在使用构建器模式来生成测试数据.这些领域对象之间有关系.我们的功能测试需要持久化这些对象. 想想这个模型: 如果我想要一个普通的 C 实例,我可以 aNew().c().build() 如果我希望它被持久化,我会执行 aNew().c().saveIn(session) 如果我想要一个具有已知 B 的 C 实例,我会执行 aNew().c().with(b).buil
..
Ruby 可以向 Number 类和其他核心类型添加方法以获得如下效果: 1.should_equal(1) 但似乎 Python 无法做到这一点.这是真的?如果是这样,为什么?和type不能修改有关系吗? 更新:与其讨论猴子补丁的不同定义,我只想关注上面的示例.我已经得出结论,正如你们中的一些人所回答的那样,这是不可能的.但我想更详细地解释为什么不能这样做,也许什么特性(如果在 Pyt
..