首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场

类责任
EN

Stack Overflow用户
提问于 2018-03-10 07:56:05
回答 1查看 67关注 0票数 0

我想创建一个应用程序来维护计算机对象的列表,检查这些对象的可用性(使用Ping),如果它们可用,则使用PSExec在管理员列表中添加或删除用户。

目前我不知道如何构建我的类-哪个类应该负责什么(我想使用通用的模式,比如SRP,尽可能好地使用它,而不是“过度杀伤力”)。

在查看可用性检查时,是否应该有一个执行ping请求的“额外”类,或者这是否应该由计算机对象(实例)本身完成?如果应该使用额外的类,应该如何通知计算机(和其他)对象已更改的可用性?拥有一处房产?

关于这类事情的想法让我发疯,并阻止我更进一步……我知道没有正确的答案,因为这显然是一个设计和意见问题,但如果我能在这里得到专家的意见,我会很感激-希望这能让我回到正轨。

EN

回答 1

Stack Overflow用户

发布于 2018-03-10 09:07:50

嗨,我已经根据所提供的描述提出了以下内容。Computer类遵循SRP,因为它只关心计算机对象。所有的操作都被委托给专门的类。目前,我只添加了一个类来检查可用性。我们还可以添加一个专门的类来添加删除用户。

开放供讨论和改进。

代码语言:javascript
复制
public class Computer
{
    // properties of the computer class
    public IList<User> Users;

    // IAvailabiity checker
    private readonly IAvailabilityChecker _checker;

    // constructor
    public Computer(IAvailabilityChecker checker)
    {
        this._checker = checker;
    }

    // operations
    public void AddUser()
    {
        if (this._checker.IsAvailable())
        {
            // add user
        }
    }

    public void RemoveUser()
    {
    }
}

public class User
{
}

public interface IAvailabilityChecker
{
    bool IsAvailable();
}

public class AvailabilityChecker
{
    public bool IsAvailable()
    {
        // availability checker logic
        return true;
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49203894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档