问题列表 - 第11364页

如何在实践中避免/重构坏单身?

仔细阅读有关单身人士的事实(代码气味,而不是模式)我想知道:

我怎样才能重构我的代码以摆脱它们?

尽管几乎每个人都认为坏单身是坏的,但是,我找不到任何关于如何更换它们的实用建议.无论是非常微不足道还是非常艰难.

有一些方法我可以想到,但所有这些似乎都极大地膨胀了我的代码.

例如,假设我有一个"全局" AppConfig类,其中包含有关产品的许可证信息并描述用户可用的功能.

我能想到的是:

  • 为包含AppConfig实例的每个项目类创建一个公共基类.(不好意思:对于已经有基类的情况,例如表格,这是不可能的)
  • 使用setAppConfig方法创建通用接口.
  • 创建一个AppConfigFactory可以创建AppConfig实例的全局(BAD:仅将问题转移到另一个类)
  • 将实例作为参数传递给需要它的每个方法.(坏:代码膨胀)
  • ...

我能做什么?

编辑:澄清:我在我的代码中发现了一个不好的单例.现在我想重构我的代码以删除它.我正在寻求关于如何实现这一目标的提示和一般想法.

oop design-patterns

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

这个PHP代码可以改进吗?

下面有一个更好的方法来完成这个简单的任务吗?喜欢数组甚至是其他方法?

<?PHP
// current way
if ($city != NULL) {
    $city = FilterALLHTML($city);
}
if ($state != NULL) {
    $state = FilterALLHTML($state);
}
if ($title != NULL) {
    $title = FilterALLHTML($title);
}
if ($division != NULL) {
    $division = FilterALLHTML($division);
}
?>
Run Code Online (Sandbox Code Playgroud)

这是我目前的职能

function FilterALLHTML($document) {
    //old array line //"'<[\/\!]*?[^<>]*//?//>'si",// strip html
    $text = strip_tags($document);
    $search = array ("/f.?u.?c.?k/i",
                 "/(s|$).?h.?i.?t/i",
                 '/(potspace|mycrib|palbolt)/i');
    $text = preg_replace ($search, '', $text);  
    return $text;
}
Run Code Online (Sandbox Code Playgroud)

更新 - 在这篇帖子的建议之后,感谢我的新功能

function FilterALLHTML($var) {
    //old array line //"'<[\/\!]*?[^<>]*//?//>'si",// …
Run Code Online (Sandbox Code Playgroud)

php

4
推荐指数
3
解决办法
249
查看次数

单元测试ASP.net网站项目代码存储在App_Code中

我有一个ASP.net网站项目(.net 3.5).目前,代码文件背后的所有非代码(包括Linq2Sql内容,数据上下文,业务逻辑,扩展方法等)都位于App_Code文件夹中.

我有兴趣在项目的至少某些部分中引入单元测试(使用nunit).我要做的任何单元测试都需要完全访问当前位于App_Code文件夹中的所有代码.到目前为止,我已经做了一些初步阅读,并且共识似乎是:

  • 鉴于我目前的设置,这是不可能的
  • 单元测试需要引用作为已编译dll的一部分的类,并且Web站点项目按定义仅在运行时编译.
  • 为了继续,我需要将我的整个项目转换为Web应用程序,或者将我想要测试的所有代码(即:App_Code的全部内容)移动到类库项目并引用类库项目在网站项目中.这些中的任何一个都将提供对编译的dll格式所需的类的访问,这将允许我对它们进行单元测试.

它是否正确?或者还有另一种方法可以在不重组/重构整个项目的情况下进行单元测试吗?

asp.net nunit unit-testing vs-web-site-project

47
推荐指数
4
解决办法
1万
查看次数

如何从通知点击发送参数到活动?

我可以找到一种方法从我的通知中向我的活动发送参数.

我有一个创建通知的服务.当用户点击通知时,我想用一些特殊参数打开我的主要活动.例如项目ID,因此我的活动可以加载并呈现特殊项目详细信息视图.更具体地说,我正在下载一个文件,当下载文件时,我希望通知有一个意图,当点击它时,它会以特殊模式打开我的活动.我试图使用putExtra我的意图,但似乎无法提取它,所以我认为我做错了.

我的服务中创建通知的代码:

        // construct the Notification object.
     final Notification notif = new Notification(R.drawable.icon, tickerText, System.currentTimeMillis());


    final RemoteViews contentView = new RemoteViews(context.getPackageName(), R.layout.custom_notification_layout);
    contentView.setImageViewResource(R.id.image, R.drawable.icon);
    contentView.setTextViewText(R.id.text, tickerText);
    contentView.setProgressBar(R.id.progress,100,0, false);
    notif.contentView = contentView;        

    Intent notificationIntent = new Intent(context, Main.class);
    notificationIntent.putExtra("item_id", "1001"); // <-- HERE I PUT THE EXTRA VALUE
    PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);
    notif.contentIntent = contentIntent;

    nm.notify(id, notif);
Run Code Online (Sandbox Code Playgroud)

我的Activity中的代码尝试从通知中获取额外参数:

 public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.main);


    Bundle extras = getIntent().getExtras();
    if(extras != null){
        Log.i( "dd","Extra:" + …
Run Code Online (Sandbox Code Playgroud)

notifications android bundle android-intent

193
推荐指数
7
解决办法
14万
查看次数

用于在Linux中获取CPU负载的C API

在linux中,是否有内置的C库函数来获取机器的CPU负载?据推测,我可以编写自己的函数来打开和解析/ proc中的文件,但似乎应该有更好的方法.

  • 不需要携带
  • 除基本RHEL4安装外,不得要求任何库.

c c++ linux

13
推荐指数
2
解决办法
1万
查看次数

std :: auto_ptr,删除[]和泄漏

为什么这个代码并不会导致内存泄漏?

int iterCount = 1000;
int sizeBig = 100000;
for (int i = 0; i < iterCount; i++)
{
   std::auto_ptr<char> buffer(new char[sizeBig]);
}
Run Code Online (Sandbox Code Playgroud)

WinXP sp2,编译器:BCB.05.03

c++ memory-leaks auto-ptr

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

什么时候在MySQL IN子句中使用字符串被认为太多了?

请告诉我从MySQL查询中使用"IN子句"的经验被认为是一个太大的列表来推动被认为是好的做法?

示例场景是我有一个用户ID号的字符串,我将从缓存中提取,它可以从1个数字一直到该列表中的5,000个数字,我将使用这个列表的mysql查询,如下所示例;

SELECT column FROM table 
WHERE userid 
IN ( 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 )
Run Code Online (Sandbox Code Playgroud)

你能告诉我你对这个问题的看法吗?

mysql performance

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

如何使用SQL 2008 HierarchyID数据类型执行级联删除?

我没有太多使用HierarchyID,所以我有点不确定.如果我的表有HierarchyID,我该如何执行级联删除?(即删除'父母'时删除所有'孩子')

我假设我将不得不使用CTE和HierarchyID函数,但不知道如何去做...

sql-server hierarchyid

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

如何使用c#代码检查sql server中是否有表?

我喜欢编写c#代码,我想通过它来检查sqlserver中是否有表?

任何人都可以给我一个示例代码吗?

c# sql-server

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

在哪里可以找到UI示例

程序员通常不太关注用户界面,而是更多地关注功能,但用户首先要根据其外观来判断产品,因此有必要为Web,桌面和移动应用程序提供良好的用户界面.

就个人而言,我不喜欢花费太多时间进行用户界面设计,有时会尝试寻找一些示例然后修改现有设计.

有没有人知道任何优秀的网络资源与Web,桌面和移动设备的用户界面集合?

user-interface

7
推荐指数
2
解决办法
4448
查看次数