将数据操作函数移动到包含该数据的类时,在哪里绘制线?例如,假设您有一个简单的类,它存储天气的描述,包括温度,湿度,风速和风向的变量,以及测量的时间.现在假设你有一个这个类的对象,你想把它传送给别人 - 另一个进程,另一台机器,等等.您是否将代码传输到对象本身 - 例如,通过向简单数据类添加Send(目标类型)方法?或者你是否将这种功能保存在可以通过介质发送和接收任何内容的单独类中 - 无论是网络,文件i/o,进程间通信还是类似的东西?
我的直觉是保持我的数据类简单并在我想传输它们时将它们包装起来 - 在序列化它们的类中,并使用他们理解的简单接口呈现发送器和接收器类.另一种方法似乎是将包括厨房水槽在内的所有东西都放入简单的数据类中 - 每个函数都可以对这些数据进行操作,但是间接的.简而言之,网络错误处理代码在我看来并不属于简单的数据类.
这对我来说很明显,但我一直看到开发人员在他们的类上放置Send()方法.他们甚至将消息类告诉Send(),这对我来说似乎非常违反直觉; 如果我在一张纸上写一封信,我不会告诉该报纸.我把信封在一个信封里然后交给邮递员,因为他有一辆面包车和一张地图.人们怎么想?
当我使用MPMoviePlayerViewController时,我似乎无法将modalTransitionStyle更改为默认的上滑动画以外的任何内容.
有没有其他人设法让这个工作?
MPMoviePlayerViewController* theMoviePlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL fileURLWithPath:videoURL]];
theMoviePlayer.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; // doesn't work
[self presentMoviePlayerViewControllerAnimated:theMoviePlayer];
Run Code Online (Sandbox Code Playgroud)
谢谢
让我们说我有一个我想要转换为值对象的数组.
我的值对象类如下:
/* file UserVO.php*/
class UserVO
{
public $id;
public $email;
public function __construct($data)
{
$this->id = (int)$data['id'];
$this->email = $data['email'];
}
}
Run Code Online (Sandbox Code Playgroud)
我创建了我的值对象数组,如下所示:
/* file UserService.php*/
$array = array(
array(...),
array(...));
$count = count($array);
for ($i = 0; $i < $count; $i++)
{
$result[] = new UserVO($array[$i]);
}
return $result;
Run Code Online (Sandbox Code Playgroud)
好的,所以一切正常.但是,我想具体说明要动态创建的VO,这样我就可以使用一个动态函数来创建我的VO.
就像是:
$ret = create_vo($array, 'UserVO');
function create_vo($data, $vo)
{
$count = count($data);
for ($i = 0; $i < $count; $i++)
{
$result[] = new $vo($data[$i]); //this obviously …Run Code Online (Sandbox Code Playgroud) 我有一个处理图像的方法.该方法采用一个图像,对其执行一些操作并返回另一个图像:
public BufferedImage manipulateImage (Image image) {
...
}
Run Code Online (Sandbox Code Playgroud)
我不确定是否有针对此类活动编写单元测试的最佳实践.应该首先检查图像的哪些特征?如何检查图像是否没有损坏?例如,一旦我遇到问题,GIF图像在阅读ImageIO并保存后会变色.
做这个的最好方式是什么?通常,当我在SQL中创建一个Query时,我会在visual studio的设计器中创建它,并且我多次运行它以查看我的结果....
Linq-to-Entities有这样的事吗?
我正在寻找数学变换来将2D平面[0,1]x[0,1]上的点变换到单位球面上.
最常见的投影将纬度-经度映射通过解释u和v作为球面坐标的角度(映射u到[0,2PI]和v到[-PI/2, PI/2])
这会对球体的极点产生强烈的扭曲.人们可以把这种转变想象成将球体包裹成两端旋转纸张的糖果纸.这会在这两端造成扭曲.
The transformation I'm looking for can be rater thoght of putting the sphere into the middle of a paper and putting all sides around the sphere and twirl them together on a single spot - so you get a little paper-bag with your sphere in it. This yelds minimal distortion on the bottom of the "bag" and maximum distoriton on the top …
我想做这样的事情:
<?php echo date('Y'); ?>
Run Code Online (Sandbox Code Playgroud)
但后来在一个.jsp文件中.我看到的所有教程都需要在某处构建一个类.我们正在运行appFuse和Tapestry.当然其中一个(如果不是Java本身)为我们提供了一些东西来做这种事情而没有所有的开销.
这似乎应该有效,但不是:
<%= new Date.getYear() %>
Run Code Online (Sandbox Code Playgroud) 我有一个快速的log4net问题.如何从app.Config中指定要使用的appender?此特定配置文件引用2个不同的appender.两者都是滚动文件追加器,但它们指向不同的文件.在整个应用程序中,正在调用log4net并将类型传递给构造函数.像这样...
private static readonly ILog log = LogManager.GetLogger(typeof(Foo));
Run Code Online (Sandbox Code Playgroud)
log4net如何知道选择哪个appender?您可以将类型映射到特定的命名appender吗?我知道GetLogger有5个构造函数,你能传递一个类型和一个appender名称吗?我看到"repositoryName",不知道那是什么.如果有人能指出我正确的方向,我会非常感激.我想要一组特定的类型来专门记录到一个appender.
感谢任何提示,
〜在圣地亚哥
在Bash中,测试数组是否包含某个值的最简单方法是什么?
编辑:在答案和评论的帮助下,经过一些测试后,我想出了这个:
function contains() {
local n=$#
local value=${!n}
for ((i=1;i < $#;i++)) {
if [ "${!i}" == "${value}" ]; then
echo "y"
return 0
fi
}
echo "n"
return 1
}
A=("one" "two" "three four")
if [ $(contains "${A[@]}" "one") == "y" ]; then
echo "contains one"
fi
if [ $(contains "${A[@]}" "three") == "y" ]; then
echo "contains three"
fi
Run Code Online (Sandbox Code Playgroud)
我不确定它是否是最佳解决方案,但似乎有效.
我想知道是否可以在不将循环迭代次数存储在任何地方的情况下执行一定数量的操作.
例如,假设我想将两条"hello"消息打印到控制台.现在我知道我能做到:
for i in range(2):
print "hello"
Run Code Online (Sandbox Code Playgroud)
但随后的i变量是要采取的价值观0和1(我并不真的需要).有没有办法实现同样的事情而不将这些不需要的值存储在任何地方?