logo

Crowdly

Browser

Add to Chrome

Який структурний патерн використано     class Program     {         static voi...

✅ The verified answer to this question is available below. Our community-reviewed solutions help you understand the material better.

Який структурний патерн використано

    class Program

    {

        static void Main(string[] args)

        {

            Person john = new Person("John");

            Person jane = new Person("Jane");

            Person alice = new Person("Alice");

            Person billy = new Person("Billy");

            Person christine = new Person("Christine");

            john.LogChildren();

            jane.LogChildren();

            john.AddChild(alice);

            jane.AddChild(alice);

            john.AddChild(billy);

            jane.AddChild(christine);

            john.LogChildren();

            jane.LogChildren();

            Uncle david = new Uncle("David");

            Person edward = new Person("Edward");

            edward.AddChild(john);

            edward.AddChild(david);

            edward.LogChildren();

        }

    }

    public interface IFamilyMember

    {

        string Name { get; set; }

    }

    public class Person : IFamilyMember, IEnumerable<IFamilyMember>

    {

        private List<IFamilyMember> _children = new List<IFamilyMember>();

        public string Name { get; set; }

        public Person(string name)

        {

            Name = name;

        }

        public void AddChild(IFamilyMember child)

        {

            _children.Add(child);

        }

        public void RemoveChild(IFamilyMember child)

        {

            _children.Remove(child);

        }

        public IFamilyMember GetChild(int index)

        {

            return _children[index];

        }

        public IFamilyMember GetChild(string name)

        {

            return _children.Where(c => c.Name == name).First();

        }

        public IEnumerable<IFamilyMember> GetChildren()

        {

            return _children;

        }

        public IEnumerator<IFamilyMember> GetEnumerator()

        {

            return ((IEnumerable<IFamilyMember>)_children).GetEnumerator();

        }

        IEnumerator IEnumerable.GetEnumerator()

        {

            return ((IEnumerable<IFamilyMember>)_children).GetEnumerator();

        }

        public void LogChildren()

        {

            // Check if person has any children.

            if (GetChildren().Any())

            {

                // Output person's name, number of children, and list of child names.

                Console.WriteLine($"{Name} has ({GetChildren().Count()}) children:\n{String.Join("\n", GetChildren().Select(c => c.Name))}");

            }

            else

            {

                // No children to output.

                Console.WriteLine($"{Name} has no children.");

            }

        }

    }

    public class Aunt : IFamilyMember

    {

        public string Name { get; set; }

        public Aunt(string name)

        {

            Name = name;

        }

    }

    public class Uncle : IFamilyMember

    {

        public string Name { get; set; }

        public Uncle(string name)

        {

            Name = name;

        }

    }

100%
0%
0%
0%
0%
0%
0%
More questions like this

Want instant access to all verified answers on do.ipo.kpi.ua?

Get Unlimited Answers To Exam Questions - Install Crowdly Extension Now!

Browser

Add to Chrome