1、以下代码违反了什么设计原则() public class Student { public int Id; public string StudentName; }
public class MClass { public int Id; public string ClassName; public List<Student> students = new List<Student>(); public void print() { foreach(Student stu in students) { Console.WriteLine("student id:{0},student name{1}", stu.Id, stu.StudentName); } } }
public class School { public int Id; public string SchoolName; public List<MClass> mClasses = new List<MClass>(); public void Print() { Console.WriteLine("school id:{0},school name{1}", Id, SchoolName); foreach (MClass mclss in mClasses) { Console.WriteLine("class id:{0},class name{1}", mclss.Id, mclss.ClassName); List<Student> students = mclss.students;
foreach (Student stu in students) { Console.WriteLine("student id:{0},student name{1}", stu.Id, stu.StudentName); } } } }
2、以下代码违反的原则是() public class Chart { private string _type; private double[][] _data; public Chart(double[][] data, string type) { _type = type.ToLower(); _data = data; if (_type == "histogram") { //初始化柱状图 } else if (_type == "pie") { //初始化饼状图 } else if (_type=="line") { //初始化折线图 } } public void Display() { if (_type == "histogram") { //显示柱状图 } else if (_type == "pie") { //显示饼状图 } else if (_type == "line") { //显示折线图 } } }
3、以下代码是对哪种设计模式的简化() abstract class Product { public Product CreateProduct(string type) { Product product = default(Product); switch (type.ToLower()) { case "a": product = new ProductA(); break; case "b": product = new ProductB(); break; } return product; } } class ProductA : Product { } class ProductB : Product { }
4、下列关于单例模式错误的说法是()。 - A. 为了防止在外部对其实例化,将其构造函数设计为私有。
- B. 在单例类内部定义一个Singleton类型的静态对象,作为外部共享的唯一实例。
- C. 在单例类的内部实现只生成一个实例,同时它提供一个静态的GetInstance()工厂方法,让客户可以访问它的唯一实例。
5、下面不属于创建型模式的有() - A. 抽象工厂模式(Abstract Factory)
- B. 工厂方法模式(Factory Method)
|