为什么喜欢构图而不是继承呢?每种方法都有哪些权衡取舍?什么时候应该选择继承而不是作文?
(1) List<?> myList = new ArrayList<?>();
(2) ArrayList<?> myList = new ArrayList<?>();
Run Code Online (Sandbox Code Playgroud)
我理解,使用(1),可以交换List接口的实现.似乎(1)通常在应用程序中使用而不管需要(我自己总是使用它).
我想知道是否有人使用(2)?
此外,经常(并且我可以得到一个例子)情况实际上需要使用(1)over(2)(即where(2)不足以对接口和最佳实践等进行编码)
接口的原因真正让我无所适从.根据我的理解,这是一种解决C#中不存在的不存在的多继承的问题(或者我被告知).
我所看到的是,你预先定义了一些成员和函数,然后必须再次在类中重新定义.从而使界面变得多余.它只是感觉像句法...好吧,垃圾对我来说(请不要冒犯意思.垃圾就像无用的东西).
在下面给出的示例中,从堆栈溢出的不同C#接口线程中获取,我只是创建一个名为Pizza而不是接口的基类.
简单示例(取自不同的堆栈溢出贡献)
public interface IPizza
{
public void Order();
}
public class PepperoniPizza : IPizza
{
public void Order()
{
//Order Pepperoni pizza
}
}
public class HawaiiPizza : IPizza
{
public void Order()
{
//Order HawaiiPizza
}
}
Run Code Online (Sandbox Code Playgroud) 在阅读有关设计模式时,人们会发现这句话.
但是我不明白,有人可以帮我解释一下吗?
我是ASP.NET MVC的新手.我之前使用过PHP,很容易创建会话并根据当前会话变量选择用户记录.
我在互联网上到处寻找一个简单的分步教程,可以向我展示如何在我的C#ASP.NET MVC 4应用程序中创建和使用会话.我想创建一个包含用户变量的会话,我可以从我的控制器中的任何位置访问它,并且能够在我的LINQ查询中使用变量.
-提前致谢!
我一直在阅读有关OCP主要内容以及如何使用策略模式来实现这一目标.
我打算尝试向几个人解释这个,但我能想到的唯一例子是根据"订单"的状态使用不同的验证类.
我在线阅读了几篇文章,但这些文章通常没有描述使用该策略的真实原因,如生成报告/账单/验证等...
是否有任何现实世界的例子,您认为策略模式是常见的?
在PHP中,您可以通过以下方式动态向元数添加元素:
$x = new Array();
$x[] = 1;
$x[] = 2;
Run Code Online (Sandbox Code Playgroud)
在此之后,$x将是这样的数组:{1,2}.
有没有办法在Java中做类似的事情?
java ×5
interface ×4
oop ×3
c# ×2
list ×2
.net ×1
aggregation ×1
arrays ×1
asp.net-mvc ×1
charsequence ×1
collections ×1
composition ×1
decoupling ×1
inheritance ×1
ooad ×1
php ×1
session ×1
string ×1
theory ×1