问题列表 - 第9231页

装饰模式是否太过于实施咖啡订购系统?

更新:因为我们通常说,"情况将决定任何设计模式是否适合这项工作"......现在生活中的咖啡订购系统是否可以使用装饰模式解决?

装饰模式是否太过于实施咖啡订购系统?Head First Design Patterns一书以它为例,但我想我会用2个数组或表来实现它:

咖啡类型(法国烤,房子混合等)
添加(焦糖,奶油,肉桂等)

所以它可以是price.php中的2个数组,或DB中的2个数组,并读入2个数组.

当客户订购咖啡时,选择将总结价格.

看起来使用装饰器模式是相当矫枉过正的,或者你认为有充分的理由实际使用这种模式?作为一个例子,我认为它很好,但是如果它看起来像一个现实生活中的问题,它可以用一种简单的方法完全解决,但是使用更复杂的解决方案也会感觉很奇怪.

design-patterns

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

尝试使用CGRect时出现语法错误

我正在尝试将子视图添加到tableview单元格中,当然也使用CGRect作为其中的一部分.但是,我在构建时遇到语法错误:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    switch (indexPath.section) {
        case 1:
            CGRect <<- SYNTAX ERROR cellFrame = CGRectMake(0, 0, 300, 65);
            cell = [[[UITableViewCell alloc] initWithFrame:cellFrame reuseIdentifier: CellIdentifier] autorelease];

            CGRect infoRect = CGRectMake(0, 5, 295, 55);
            UILabel *infoLabel = [[UILabel alloc] initWithFrame:infoRect];
            infoLabel.tag = 1;
            [cell.contentView addSubview:infoLabel];
            [infoLabel release];
            break;
        default:
            break;
    }
    cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
}
Run Code Online (Sandbox Code Playgroud)

我试过右键单击框架 - …

iphone objective-c

0
推荐指数
1
解决办法
1634
查看次数

如何使用除`=`之外的其他运算符来创建DBIx :: Class连接表?

摘要

我有一张成对的物品表.我想自己加入它,这样我就可以在一个查询中检索该对的两侧.它是有效的SQL(我认为),SQLite引擎实际上接受它,但我无法让DBIx :: Class咬紧牙关.

最小的例子

package Schema::Half;
use parent 'DBIx::Class';
__PACKAGE__->load_components('Core');
__PACKAGE__->table('half');
__PACKAGE__->add_columns(
  whole_id => { data_type => 'INTEGER' },
  half_id  => { data_type => 'CHAR'    },
  data     => { data_type => 'TEXT'    },
 );
__PACKAGE__->has_one(dual => 'Schema::Half', {
  'foreign.whole_id' => 'self.whole_id',
  'foreign.half_id' => 'self.half_id',
  # previous line results in a '='
  # I'd like a '<>'
});

package Schema;
use parent 'DBIx::Class::Schema';
__PACKAGE__->register_class( 'Half', 'Schema::Half' );

package main;
unlink 'join.db';
my $s = Schema->connect('dbi:SQLite:join.db');
$s->deploy;

my $h = $s->resultset('Half'); …
Run Code Online (Sandbox Code Playgroud)

sql perl join dbix-class

14
推荐指数
1
解决办法
3774
查看次数

你如何处理挂断电话的线程?

我有一个线程,并尝试建立连接.在线程中,我打电话给第三方库.有时,此调用会挂起,并且永远不会返回.在UI线程上,我希望能够通过中止线程来取消连接尝试,该线程应该中止对第三方库的挂起调用.

我已经调用了Thread.Abort,但现在已经读过Thread.Abort仅在控件返回托管代码时才有效.我观察到这是真的,因为线程永远不会中止,我现在已经坐在Thread.Join上十分钟了.我该怎么办这个挂线程?我应该将引用置空并继续吗?我想尽可能干净 -

.net c# asp.net multithreading

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

检查日期是否为此日期或更大

我试图用布尔值检查我的linq查询中的日期是这个日期还是更大.但它不像我想要的那样工作.

这是我的代码

        public bool CheckMonth(int month)
    {
            if (month > System.DateTime.Now.Month)
            {
                return true;
            }
            else if (month == System.DateTime.Now.Month)
            {
                return true;
            }
            else
            {
                return false;
            }
    }

    public virtual IList<DateItem> GetThreeDateToList()
    {
        var data = new ScoutDataDataContext();

        var q = (from d in data.DateDetails
                 where d.Activate == 1 && CheckMonth(d.EndDate.Month) 
                 orderby d.Date.Date.Month descending
                 select new DateItem
                 {
                     Title = d.Title,
                     Date = d.Date.Date + " - " + d.EndDate.Date,
                     Link = d.Link,
                 }).Take(3);

        return q.ToList();
    }
Run Code Online (Sandbox Code Playgroud)

谁有不同的方式?

c# linq datetime

6
推荐指数
1
解决办法
3万
查看次数

WPF:如何绑定到嵌套属性?

我可以绑定到属性,但不能绑定到另一个属性中的属性.为什么不?例如

<Window DataContext="{Binding RelativeSource={RelativeSource Self}}"...>
...
    <!--Doesn't work-->
    <TextBox Text="{Binding Path=ParentProperty.ChildProperty,Mode=TwoWay}" 
             Width="30"/>
Run Code Online (Sandbox Code Playgroud)

(注意:我不是要做master-details或者其他任何东西.这两个属性都是标准的CLR属性.)

更新:问题是我的ParentProperty依赖于XAML中的一个对象被初始化.不幸的是,该对象后来在XAML文件中定义而不是Binding,因此当Binding读取ParentProperty时,该对象为null.由于重新排列XAML文件会搞砸布局,我能想到的唯一解决方案是在代码隐藏中定义Binding:

<TextBox x:Name="txt" Width="30"/>

// after calling InitializeComponent()
txt.SetBinding(TextBox.TextProperty, "ParentProperty.ChildProperty");
Run Code Online (Sandbox Code Playgroud)

wpf binding nested properties

35
推荐指数
2
解决办法
5万
查看次数

如何查看Xcode调试器中的对象?

我有一个关于在Xcode和GDB上调试的简单问题.

我经常遇到一个错误:

unrecognized selector sent to instance 0x1081ad0
Run Code Online (Sandbox Code Playgroud)

这使得程序加载到GDB中.有没有一种简单的方法可以从GDB中检查该内存中的实例?

iphone debugging objective-c

30
推荐指数
3
解决办法
2万
查看次数

混合html和C#

我有一些html会在每个页面中,所以我把它卡在.cs文件中.这段html有很多引号,所以我宁愿不要逃避每个(\").这并不难,因为我可以使用find/replace但我想知道.有没有一个很好的方法混合html和CS所以我可以轻松生成页面?

html c# asp.net

0
推荐指数
1
解决办法
1564
查看次数

设计模式真的有多重要?

设计模式真的有多重要?

我认为前一代程序员并没有那么多使用设计模式(那些在80年代和90年代中期之前毕业的人).最近的毕业生一般都知道它并且使用它更多吗?

如果你有兴趣,我也做了一个调查,你可以在这里查看:

http://www.surveymonkey.com/s.aspx?sm=kJOdGX0RPx5FGrfPVm_2bmIw_3d_3d

更新:以下是初步调查结果:

http://img192.imageshack.us/img192/7107/surveyresults.png

design-patterns

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

当方法需要创建新对象时,有关依赖注入的新手问题

我一直在阅读关于依赖注入的问题并且有一个简单的问题.我可以理解如何通过构造函数或setter注入所需的依赖项由DI框架自动装配.当对象决定由于某些业务流程而需要创建新对象时会发生什么?在这些情况下,我是否需要始终创建工厂?为了使它成为一个不那么抽象的问题,这里有一个例子.

假设我正在写一个Asteriods游戏.中间有一艘船可以旋转并射击星号.假设已经创建了船并注入了适当的东西.当playerShip.shoot()被调用时,我们需要创建一个bullet对象.项目符号对象需要知道它的去向(direction以及从哪里开始(point).

通常,我会做这样的事情:

bullet = new Bullet( direction, point );
Run Code Online (Sandbox Code Playgroud)

但是,这将PlayerShip类与Bullet类紧密耦合.这应该如何在依赖注入下工作?我是否需要创建一个BulletFactory接口并将其实现注入到船中?

编辑:我实际上并没有写asteriods.这是一个我认为人们会理解的简单例子.我想要一些需要创建一个运行时(而不是"连接对象")的东西,它也有它的构造函数的参数.

language-agnostic dependency-injection

7
推荐指数
1
解决办法
275
查看次数