Tag: devise原则

是否有初始化通过DI容器创build的对象的模式

我想让Unity来pipe理我的对象的创build,我想有一些初始化参数,直到运行时才知道: 目前唯一能想到的方法是在界面上使用Init方法。 interface IMyIntf { void Initialize(string runTimeParam); string RunTimeParam { get; } } 然后使用它(在统一)我会这样做: var IMyIntf = unityContainer.Resolve<IMyIntf>(); IMyIntf.Initialize("somevalue"); 在这种情况下, runTimeParam参数是在运行时根据用户input确定的。 这里的小事情只是返回runTimeParam的值,但实际上这个参数是类似文件名的,初始化方法会对文件做一些事情。 这就产生了一些问题,即Initialize方法在接口上可用,可以多次调用。 在实现中设置一个标志,并抛出exception重复调用Initialize似乎是笨重的。 在我解决我的界面的时候,我不想了解IMyIntf的实现。 我所需要的是,这个接口需要一定的初始化参数。 有没有办法用这个信息注释(属性?)接口,并在创build对象时将它们传递给框架? 编辑:描述更多的接口。

如何将多个选项存储在一个表中?

我想devise一个结果计算的应用程序。 首先,我需要知道如何将logging存储在MySQL数据库中,以便学生可以拥有许多课程,例如,学生A可以有6个主题,而学生B可以有12个主题。 在这种情况下,我需要知道我怎么可能devise一个数据库结构,它允许一个字段以一个数组的forms存储尽可能多的主题。 任何build议或更好的方式来处理这将高度赞赏。

形状与倾斜的一面(敏感)

我正在尝试创build一个如下图所示的形状,仅在一侧 (例如底侧) 倾斜边缘,而其他边缘保持笔直。 我尝试使用边框方法(代码如下),但我的形状的尺寸是dynamic的,因此我不能使用此方法。 .shape { position: relative; height: 100px; width: 200px; background: tomato; } .shape:after { position: absolute; content: ''; height: 0px; width: 0px; left: 0px; bottom: -100px; border-width: 50px 100px; border-style: solid; border-color: tomato tomato transparent transparent; } <div class="shape">Some content</div> 我也尝试使用渐变背景(如下面的代码),但随着尺寸的变化,它会变得混乱。 你可以看到我的意思是盘旋在下面的片段的形状。 .gradient { display: inline-block; vertical-align: top; height: 200px; width: 100px; […]

什么是Liskov替代原则的例子?

我听说Liskov替代原则(LSP)是面向对象devise的基本原则。 这是什么,它有什么使用的例子?

静态类和单例模式之间的区别?

静态类和单例模式之间存在什么真正的(即实际的)区别? 两者都可以在没有实例化的情况下被调用,都只提供一个“实例”,而且它们都不是线程安全的。 还有其他的区别吗?

这个关键字在一个函数中如何工作?

我刚刚在JavaScript中遇到了一个有趣的情况。 我有一个类的方法,使用对象文字符号定义几个对象。 在这些对象内部,正在使用this指针。 从程序的行为中,我推断出this指针指的是调用方法的类,而不是由文字创build的对象。 这似乎是任意的,虽然这是我期望它的工作方式。 这是定义的行为? 它是跨浏览器安全的吗? 有没有任何推理说明为什么超出“规范说明”这样的方式(例如,这是否是一些更广泛的devise决策/理念的结果)? 削减代码示例: // inside class definition, itself an object literal, we have this function: onRender: function() { this.menuItems = this.menuItems.concat([ { text: 'Group by Module', rptletdiv: this }, { text: 'Group by Status', rptletdiv: this }]); // etc }

是否有一个用PHP的数据库访问的单身人士的使用情况?

我通过PDO访问我的MySQL数据库。 我设置了对数据库的访问权限,我的第一个尝试是使用以下内容: 我想到的第一件事是global : $db = new PDO('mysql:host=127.0.0.1;dbname=toto', 'root', 'pwd'); function some_function() { global $db; $db->query('…'); } 这被认为是不好的做法。 经过一番search,我结束了Singleton模式 “适用于需要单个课程实例的情况”。 根据手册中的例子,我们应该这样做: class Database { private static $instance, $db; private function __construct(){} static function singleton() { if(!isset(self::$instance)) self::$instance = new __CLASS__; return self:$instance; } function get() { if(!isset(self::$db)) self::$db = new PDO('mysql:host=127.0.0.1;dbname=toto', 'user', 'pwd') return self::$db; […]

PHP全局函数

全局关键字的用途是什么? 有什么理由更喜欢一种方法? 安全? 性能? 还要别的吗? 方法1: function exempleConcat($str1, $str2) { return $str1.$str2; } 方法2: function exempleConcat() { global $str1, $str2; return $str1.$str2; } 什么时候使用global有意义的? 对我来说,这似乎是危险的 ,但可能只是缺乏知识。 我对文档感兴趣(例如代码示例,文档链接…)技术原因。 提前致谢! 赏金 这是一个很好的关于这个话题的一般性问题,我(@Gordon)提供了一个赏金来获得额外的答案。 无论你的答案是与我的一致,还是给出不同的观点并不重要。 既然global话题不时出现,我们就可以用一个好的“规范”的答案去联系。

Java核心库中的GoFdevise模式示例

我正在学习GoF的Javadevise模式,我想看看他们的一些真实的例子。 Java核心库中这些devise模式的一些很好的例子是什么?

Javadate和时间API有什么问题?

我经常遇到Java Date和其他与date时间相关的类的负面反馈。 作为一名.NET开发人员,我不能完全(没有使用过它们)理解它们究竟有什么问题。 任何人都可以对此有所了解吗?