VS 2013 逆向工程从代码到类图,能否生成详细类图(能显示出各种关系,例如:聚合、关联、组合等?)在解决方案中右击查看类图只能看到简单的类图

独孤文彬 2015-01-11 11:02:47
VS 2013 逆向工程从代码到类图,能否生成详细类图(能显示出各种关系,例如:聚合、关联、组合等?)在解决方案中右击查看类图只能看到简单的类图
已自动生成的简单类图:

我所需要的详细类图:(含有聚合、组合、关联等关系)
...全文
7651 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
rain_sunshine 2016-05-25
  • 打赏
  • 举报
回复
https://msdn.microsoft.com/en-us/library/ff657806.aspx
dpcrman1987 2016-05-11
  • 打赏
  • 举报
回复
我最近也在找逆向工程的方案,发现比较少
  • 打赏
  • 举报
回复
你生成的图根本没有 IStrategy。你需要的是告诉 vs 的类图工具“需要添加 IStrategy”,而不是你那种图。
独孤文彬 2015-01-11
  • 打赏
  • 举报
回复
大哥,后面那个图是我在网上找的,是我想要的。但是您说的告诉 vs 的类图工具“需要添加 IStrategy”?我不明白,怎么告诉呢?我的源代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Strategy_Pattern
{
    class Program
    {
        static void Main(string[] args)
        {

            Context context;

            context = new Context(new ConcreteStrategyA());
            context.ContextInterface();

            context = new Context(new ConcreteStrategyB());
            context.ContextInterface();

            context = new Context(new ConcreteStrategyC());
            context.ContextInterface();


            Console.Read();

        }
    }
    abstract class Strategy
    {
        public abstract void AlgorithmInterface();


    }

    class ConcreteStrategyA : Strategy
    {

        public override void AlgorithmInterface()
        {
            Console.WriteLine("具体策略A的实现");

        }


    }

    class ConcreteStrategyB : Strategy
    {

        public override void AlgorithmInterface()
        {
            Console.WriteLine("具体策略b的实现");
        }
    }


    class ConcreteStrategyC : Strategy
    {

        public override void AlgorithmInterface()
        {
            Console.WriteLine("具体策略C的实现");
        }
    }

    class Context
    {
         Strategy strategy;
         //private ConcreteStrategyA concreteStrategyA;

         //public Context(ConcreteStrategyA concreteStrategyA)
         //{
         //    // TODO: Complete member initialization
         //    this.concreteStrategyA = concreteStrategyA;
         //}

        public Context(Strategy strategy)      //初始化时传入具体的Strategy对象
        {
            this.strategy = strategy;
        }

        public void ContextInterface()
        {
            strategy.AlgorithmInterface();
        }
    }

}

13,189

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 分析与设计
社区管理员
  • 分析与设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧